废话不多说直接上教程
1、官方API文档地址:
2、导入javd-sdk工具
Mave:
<dependency>
<groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java</artifactId>
<version>3.1.835</version>
</dependency>
Gradle:
implementation 'com.tencentcloudapi:tencentcloud-sdk-java:3.1.835'
3、java代码实现
腾讯云翻译客户端类:
package com.qifom.config;
import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.tmt.v20180321.TmtClient;
import com.tencentcloudapi.tmt.v20180321.models.TextTranslateRequest;
import com.tencentcloudapi.tmt.v20180321.models.TextTranslateResponse;
/**
* @project
* @Classname TranslatedReqVO
* @Description TODO
* @Author: LJJie
* @CreateTime: 2023-08-22 09:51
*/
public class TencentTranslationClient {
/** 地域列表
亚太东南(曼谷) ap-bangkok
华北地区(北京) ap-beijing
西南地区(成都) ap-chengdu
西南地区(重庆) ap-chongqing
华南地区(广州) ap-guangzhou
港澳台地区(中国香港) ap-hongkong
亚太南部(孟买) ap-mumbai
亚太东北(首尔) ap-seoul
华东地区(上海) ap-shanghai
华东地区(上海金融) ap-shanghai-fsi
华南地区(深圳金融) ap-shenzhen-fsi
亚太东南(新加坡) ap-singapore
亚太东北(东京) ap-tokyo
欧洲地区(法兰克福) eu-frankfurt
美国东部(弗吉尼亚) na-ashburn
美国西部(硅谷) na-siliconvalley
北美地区(多伦多) na-toronto
*/
private final TmtClient client;
/**
* secretId,secretKey id和密钥
*/
public TencentTranslationClient(String secretId, String secretKey) {
Credential cred = new Credential(secretId, secretKey);
client = new TmtClient(cred, "ap-tokyo");
}
/**
* text 需要翻译的文本
* sourceLang 翻译文本的语种
* targetLang 目标语种
*/
public String translateText(String text, String sourceLang, String targetLang) throws TencentCloudSDKException {
TextTranslateRequest req = new TextTranslateRequest();
req.setSourceText(text);
req.setSource(sourceLang);
req.setTarget(targetLang);
req.setProjectId(0L);
TextTranslateResponse resp = client.TextTranslate(req);
return resp.getTargetText();
}
}
请求地域列表我就贴出来了,可以看上面代码块里面的注释。
由于我这个项目是对日的项目,所以地域我选的东京,在国内的可以换成 ap-beijing
至于语种标识字符可在官方文档里查看。
请求类:
package com.qifom.pojo.vo.admin;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @project
* @Classname TranslatedReqVO
* @Description TODO
* @Author: LJJie
* @CreateTime: 2023-08-22 09:51
*/
@Data
public class TranslatedReqVO {
@ApiModelProperty(value = "日语字符",required = true)
@NotBlank(message = "翻译的字符不能为空!")
private String str;
@ApiModelProperty(value = "需要的翻译语言",required = true)
@NotBlank(message = "需要的翻译语言不能为空!")
private String sourceLang;
@ApiModelProperty(value = "目标语言",required = true)
@NotBlank(message = "目标语言不能为空!")
private String targetLang;
}
返回类:
返回String字符串
Controller层:
package com.qifom.controller.admin;
import com.qifom.pojo.bean.result.Result;
import com.qifom.pojo.vo.admin.AppletUserPageVO;
import com.qifom.pojo.vo.admin.TranslatedReqVO;
import com.qifom.service.admin.JapaneseTranslatedIntoChineseService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @project
* @Classname JapaneseTranslatedIntoChinese
* @Description TODO
* @Author: LJJie
* @CreateTime: 2023-08-22 09:46
*/
@Api(value = "翻译", tags = {"翻译"})
@RestController
@RequestMapping(value = "/biz/translated", produces = MediaType.APPLICATION_JSON_VALUE)
public class JapaneseTranslatedIntoChineseController {
@Resource
private JapaneseTranslatedIntoChineseService japaneseTranslatedIntoChineseService;
@ApiOperation(value = "翻译(腾讯云)", notes = "翻译(腾讯云)")
@GetMapping("/japanToChinese")
public Result<String> japanToChinese(@Validated TranslatedReqVO req){
return Result.selectSuccess(japaneseTranslatedIntoChineseService.japanToChinese(req));
}
}
Service层:
service
package com.qifom.service.admin;
import com.qifom.pojo.vo.admin.TranslatedReqVO;
public interface JapaneseTranslatedIntoChineseService {
/**
* 功能描述:
* 〈翻译(腾讯云)〉
* @Param: [TranslatedReqVO req]
* @Return: [String]
* @Author: LJJie
* @Date: 2023/8/22 9:54
*/
String japanToChinese(TranslatedReqVO req);
}
ServiceImpl
package com.qifom.serviceImpl.admin;
import com.qifom.config.TencentTranslationClient;
import com.qifom.config.exception.ResultException;
import com.qifom.pojo.bean.result.ResultEnum;
import com.qifom.pojo.vo.admin.TranslatedReqVO;
import com.qifom.service.admin.JapaneseTranslatedIntoChineseService;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import org.springframework.stereotype.Service;
/**
* @project
* @Classname JapaneseTranslatedIntoChineseServiceImpl
* @Description TODO
* @Author: LJJie
* @CreateTime: 2023-08-22 09:53
*/
@Service
public class JapaneseTranslatedIntoChineseServiceImpl implements JapaneseTranslatedIntoChineseService {
private static final String TENCENT_SECRETID="*********";
private static final String TENCENT_SECRETKEY="********";
@Override
public String japanToChinese(TranslatedReqVO req) {
TencentTranslationClient translationClient = new TencentTranslationClient(TENCENT_SECRETID, TENCENT_SECRETKEY);
try {
String translatedText = translationClient.translateText(req.getStr(), req.getSourceLang(), req.getTargetLang());
return translatedText;
} catch (TencentCloudSDKException e) {
throw new ResultException(ResultEnum.ERROR,e.getMessage());
}
}
}
留言:
实际开发过程中出现什么问题评论区留言。