免费的翻译接口用不起不要太爽啊!

举报
原来是咔咔 发表于 2022/03/26 23:22:17 2022/03/26
【摘要】 本文给大家提供一个免费的翻译接口,有空时可以试试还是很秀的哈! 前言 项目中必要的数据是需要写语言包的,就像那种几百年不变的数据,但是有一类数据就是在项目的运行的过程中就在一直变化。 对于...

本文给大家提供一个免费的翻译接口,有空时可以试试还是很秀的哈!

前言

项目中必要的数据是需要写语言包的,就像那种几百年不变的数据,但是有一类数据就是在项目的运行的过程中就在一直变化。

对于这样的数据我们写成语言包显然是不合适的,所以我们就需要借助翻译接口来实现我们的需求了。

一、翻译接口简单介绍

先看一张图吧!看一下这个翻译接口在我们的项目中如何运用。

在这里插入图片描述

这个接口总共有4个参数,分别为a、f、t、w。

这四个参数分别的意思为,a是固定的值就是fy。

f指的是翻译的语种。

t指的是需要翻译成我们需要的语种。

w指的是需要翻译的数据。

二、项目实战

项目需求就是把左边的框出来的在切换语言后跟随这语言变动。
在这里插入图片描述
首先说明一下,在上边的这些文字不是手动写上去的,html文件也是不存在的。是在数据库注释里边配置的。

下图就是我们的数据库创建。
在这里插入图片描述
为什么这么创建,这样创建有什么好处,我就不提了,每个团队都有自己的想法哈!

接着我们来到正题

使用的代码也就这点,接口地址就是上边postman里边的地址,后边只需要传输一个需要翻译的数据即可。

本文实现的数据就是上图左侧的文字,也就是我们从数据库中把注释读出来然后根据一定的规则把这个名字就直接作为添加或者修改时的列即可。

那么就只需要把这个注释直接给追加到翻译接口后边即可。
在这里插入图片描述
给你提供一个php发起curl请求的代码

public function translateRequest($url, $data=array()){

        $ch = curl_init();//初始化
        //curl_setopt();//设置
        //设置
        curl_setopt($ch,CURLOPT_URL,$url);   //需要获取的 URL 地址
        curl_setopt($ch,CURLOPT_HEADER,0);          //启用时会将头文件的信息作为数据流输出, 此处禁止输出头信息
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);  //获取的信息以字符串返回,而不是直接输出
        curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,30); //连接超时时间
        curl_setopt($ch, CURLOPT_ENCODING, 'gzip');

        //避免https 的ssl验证
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($ch, CURLOPT_SSLVERSION, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

        if($data){
            curl_setopt($ch, CURLOPT_POST, 1);          //post请求
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//post参数
        }

        //执行
        $data = curl_exec($ch);//执行   不输出  内容返回给它
        //判断是否请求成功

        if(curl_errno($ch)){//错误码
            echo 'curl error: '.curl_error($ch);//错误信息
        }

        $response = curl_getinfo($ch);

        switch($response['http_code']){
            case 200:
                return $data;
                break;
            default:
                exit('程序异常');
        }

        curl_close($ch);//关闭
    }

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

经过测试后看看效果,效果是实现了,但是你们可以私下试试哈!翻译一组数据时速度还行,但是翻译几个数据时就有点慢了。

添加页面打开的时间大概需要3-5S,这肯定是不可以的,所以我们需要想一个办法来解决这个问题。
在这里插入图片描述

三、优化翻译速度

在第二步中,咔咔做到最后是发现翻译的速度是有点慢的,碰到字段多的更是慢的离谱。于是咔咔就想了一个办法。

这些数据是之前是一个一个翻译出来的,那么我们是不是也可以一次性给翻译出来,然后我们在来自己组装数据。
在这里插入图片描述

带着这个想法我们开始实施。

这几行代码最终实现的就是把所有的字段注释放在一起,并且用“,”隔开
在这里插入图片描述
打印出来的数据可以看一下,out字段就是翻译出来的数据,其实想都不用想一次翻译肯定比6次翻译速度快。

然后拿着这组数据在转化成数组在重新组装到原数据里就ok了。
在这里插入图片描述
这里有个小问题,可以一起关注一下。中文打印出来的是原始数据里边的,英文是数据经过处理的。

很明显可以看到返回的英文结果跟原始数据对不上。
在这里插入图片描述
这里的处理也是比较简单,如果你有更好的方案评论区见

处理方式在获取数据库字段中文注释之前把对应的索引保存到$needkey

然后重新定义一个变量fanal,让fanal的索引等于needkey的v,而对应的值就是result[needkey的k]

在这里插入图片描述

四、总结

这样一个翻译接口的使用就完成了,项目截图就不给大家展示了哈!

把多次翻译改为一次翻译,提升翻译速度,毕竟是请求别人的东西,肯定没有我们自己重组数据快。

最后给大家发一个所有语言的对照表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

坚持学习、坚持写博、坚持分享是咔咔从业以来一直所秉持的信念。希望在诺大互联网中咔咔的文章能带给你一丝丝帮助。

文章来源: blog.csdn.net,作者:咔咔-,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/fangkang7/article/details/108094808

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。