当前位置: 首页 > news >正文

如何用国外网站做头条广东网络建设有限公司

如何用国外网站做头条,广东网络建设有限公司,如何提高百度关键词排名,微信小程序开发300元最近我们一个商城项目涉及多语言切换#xff0c;默认中文。用户切换语言可选英语和阿拉伯语言#xff0c;前端APP和后端返回动态数据都要根据用户选择语言来展示。前端静态内容都做了三套语言#xff0c;后端商品为了适用这种多语言我们也进行了改造。每一件商品名称#x…最近我们一个商城项目涉及多语言切换默认中文。用户切换语言可选英语和阿拉伯语言前端APP和后端返回动态数据都要根据用户选择语言来展示。前端静态内容都做了三套语言后端商品为了适用这种多语言我们也进行了改造。每一件商品名称图片价格等等 分别都有三中语言对应字段根据前端公共参数(放请求header中的语言标识) 返回不同语言的字段值。 所以在商品的新增修改等等地方商品名称介绍等等就需要 根据中文翻译成英文和阿拉伯语保存下来。通过多方对比最终发现阿里云机器翻译专业版还是最准确的可能是阿里本来就有海量商品他们翻译引擎训练的比较智能。 接下来我们梳理下整个对接流程官方文档 什么是机器翻译JavaSDK_机器翻译(Machine Translation)-阿里云帮助中心 1,引入官方提供的java 版本 maven sdk !-- 阿里云翻译sdk -- !-- https://mvnrepository.com/artifact/com.aliyun/alimt20181012 -- dependencygroupIdcom.aliyun/groupIdartifactIdalimt20181012/artifactIdversion1.3.1/versionexclusionsexclusiongroupIdcom.aliyun/groupIdartifactIdopenplatform20191219/artifactId/exclusionexclusiongroupIdcom.aliyun/groupIdartifactIdtea-openapi/artifactId/exclusionexclusiongroupIdcom.aliyun/groupIdartifactIdcredentials-java/artifactId/exclusionexclusiongroupIdcom.aliyun/groupIdartifactIdtea-openapi/artifactId/exclusionexclusiongroupIdcom.aliyun/groupIdartifactIdopenapiutil/artifactId/exclusionexclusiongroupIdcom.aliyun/groupIdartifactIdoss-util/artifactId/exclusionexclusiongroupIdcom.aliyun/groupIdartifactIdtea/artifactId/exclusionexclusiongroupIdcom.aliyun/groupIdartifactIdtea-rpc/artifactId/exclusionexclusiongroupIdcom.aliyun/groupIdartifactIdtea-util/artifactId/exclusionexclusiongroupIdcom.aliyun/groupIdartifactIdtea-rpc/artifactId/exclusion/exclusions /dependency!-- 商品图片搜索 -- dependencygroupIdcom.aliyun/groupIdartifactIdimagesearch20201214/artifactIdversion4.0.2/version /dependency 因为我们后面又使用了阿里的图片搜索所以里面很多jar和图像搜索中的有冲突如果只接入翻译实际上不需要排除。 2,定义配置 建议使用一个ram账号 拿ram的accessKeyId 和secret给这个子账号开通对应权限 public class AliYunTranslateConfig {private String accessKeyId;private String accessKeySecret;/*** 华南深圳 mt.aliyuncs.com* 阿联酋迪拜 mt.aliyuncs.com**/private String endpoint; }3,封装 核心翻译方法 public class AliTranslamt20181012 {private AliYunTranslateConfig aliYunTranslateConfig;public AliTranslamt20181012(AliYunTranslateConfig aliYunTranslateConfig) {this.aliYunTranslateConfig aliYunTranslateConfig;}/*** bdescription/b :* p使用AKamp;SK初始化账号Client/p* return Client** throws Exception*/public com.aliyun.alimt20181012.Client createClient() {com.aliyun.teaopenapi.models.Config config new com.aliyun.teaopenapi.models.Config()// 必填请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID.setAccessKeyId(aliYunTranslateConfig.getAccessKeyId())// 必填请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。.setAccessKeySecret(aliYunTranslateConfig.getAccessKeySecret());// Endpoint 请参考 https://api.aliyun.com/product/alimtconfig.endpoint aliYunTranslateConfig.getEndpoint(); // 深圳// 阿联酋迪拜 mt.aliyuncs.comClient client null;try {client new Client(config);} catch (Exception e) {log.error(调用阿里云 翻译 初始化失败cause:{},。,errorMsg:{},e.getCause().getMessage(),e.getMessage());e.printStackTrace();}return client;}/*** 翻译api** return*/public ListTranslateResponseBodyDataFromThirdPartDTO translate(ListAliYunTranslateDTO dtoList) {StopWatch stopWatch new StopWatch();stopWatch.start(thirdPart_wordFromZh2ArAndEn);com.aliyun.alimt20181012.Client client this.createClient();ListTranslateResponseBodyDataFromThirdPartDTO resultList new java.util.ArrayList(dtoList.size());dtoList.forEach(dto - {com.aliyun.alimt20181012.models.TranslateRequest translateRequest new com.aliyun.alimt20181012.models.TranslateRequest().setFormatType(dto.getFormatType()).setTargetLanguage(dto.getTargetLanguage()).setSourceLanguage(dto.getSourceLanguage()).setSourceText(dto.getSourceText()).setScene(dto.getScene()).setContext(dto.getContext());com.aliyun.teautil.models.RuntimeOptions runtime new com.aliyun.teautil.models.RuntimeOptions();TranslateResponseBodyDataFromThirdPartDTO result new TranslateResponseBodyDataFromThirdPartDTO();result.setRequestKey(dto.getRequestKey());resultList.add(result);try {TranslateResponse translateResponse client.translateWithOptions(translateRequest, runtime);log.info(调用翻译 输入参数{},JSONUtil.parse(dto));if(ObjectUtil.isNotNull(translateResponse)){log.info(调用翻译 得到的结果为{}, JSONUtil.parse(translateResponse.getBody()));if(200translateResponse.getStatusCode()){TranslateResponseBody.TranslateResponseBodyData data translateResponse.getBody().getData();BeanUtils.copyProperties(data, result);}else {log.error(调用翻译出错了statusCode:{},translateResponse.getStatusCode());}}} catch (TeaException error) {log.error(调用阿里云翻译出错了errorMsg:{},error.getMessage());com.aliyun.teautil.Common.assertAsString(error.message);} catch (Exception _error) {TeaException error new TeaException(_error.getMessage(), _error);System.out.println(error.getMessage());log.error(调用阿里云翻译出错了 exception msg:{},error.getMessage());com.aliyun.teautil.Common.assertAsString(error.message);}});stopWatch.stop();log.info(stopWatch.getLastTaskName()耗时:{} 毫秒,stopWatch.getLastTaskTimeMillis());return resultList;} } 其中 请求的dto结构如下其中scene是识别翻译的使用场景是商品标题还是描述异或者是客服沟通过程中的交流文字不同场景的设置使翻译更贴近我们的预期翻译结果。 context也是很有用的上下文语境我们翻译某一段内容在不同场景下可能前后与其相搭配的额外词汇。比如title 下我们可以加上 我在网上商城搜索了 商品标题是****“的商品”。 总之这两个参数的设置都是为了设置商品不同属性 指定其大概范围的从而能更准确的获得翻译结果。可以自己多调试下找到适合自己业务的一些词汇。 public class AliYunTranslateDTO implements Serializable {public static String FROMTYPE_HTML html;public static String FROMTYPE_TEXT text;// from 语言public static String SOURCELANGUAGE_ZH zh;// 翻译目标语言public static String TARGETLANGUAGE_EN en;public static String TARGETLANGUAGE_AR ar;// 场景可选取值商品标题title商品描述description商品沟通communication医疗medical社交social)金融financepublic static String SCENE_TITLE title;public static String SCENE_DESCRIPTION description;public static String SCENE_COMMUNICATION communication;public static String SCENE_MEDICAL medical;public static String SCENE_SOCIAL social;public static String SCENE_FINANCE finance;/*** 用于标注 翻译的请求唯一标识**/ApiModelProperty(hidden true)private String requestKey ;/*** 翻译文本的格式html 网页格式。设置此参数将对待翻译文本以及翻译后文本按照 html 格式进行处理、text文本格式。设置此参数将对传入待翻译文本以及翻译后结果不做文本格式处理统一按纯文本格式处理。**/ApiModelProperty(name 译文本的格式html 或text)private String FormatType;/**** 原文语言-from* 英语 - en* 中文 - zh* 阿拉伯语 - ar**/ApiModelProperty(name 原文语言-from)private String SourceLanguage;/*** 译文语言 -to* 英语 - en* 中文 - zh* 阿拉伯语 - ar**/ApiModelProperty(name 译文语言 -to)private String TargetLanguage;/*** 待翻译内容**/ApiModelProperty(name 待翻译内容)private String SourceText;/*** 场景可选取值商品标题title商品描述description商品沟通communication医疗medical社交social)金融finance**/ApiModelProperty(name 场景可选取值商品标题title商品描述description商品沟通communication医疗medical社交social)金融finance)private String Scene;/*** 上下文信息可选填 语境* 如 我在商城买了一件 */ApiModelProperty(name 上下文信息可选填 语境)private String Context;} 返回结果 dto public class TranslateResponseBodyDataFromThirdPartDTO {/*** 请求中携带的请求唯一标识,这是我们自定义的一个批次id**/private String requestKey;/*** zh 源语言传入auto时语种识别后的源语言代码*/public String detectedLanguage;/*** 翻译结果*/public String translated;/*** 总单词数*/public String wordCount; }
http://www.hkea.cn/news/14480338/

相关文章:

  • 电商平台网站设计公司有专业做网站
  • 域名价格查询网站建筑工程分为哪几类
  • 门户网站开发费怎做账知识付费小程序源码
  • c 教学网站开发农村电商平台开发
  • 怎么做招投标网站网站建设询价单
  • 淘宝网站做淘宝客免费空间建网站
  • 网站域名怎么做厂家网站怎么做
  • 基于ssh框架的网站开发流程图网站备案需要拍照
  • 西宁网站怎么做seo科技有限公司注册条件
  • 免费建站系统wordpress临沂做企业网站的公司
  • 网站建设基地貴阳建设银行网站
  • 网站资源规划怎么写关于网站建设维护的创业计划书
  • 绍兴网站建设方案托管驾校网站建设费用
  • 做网站论文长沙市建站
  • 国外网站建设的步骤wordpress是响应式吗
  • 免费网站软件大全西安seo阳建
  • 网站建设会议议程网站优化 无需定金
  • 制作网站的步骤是什么代码做网站
  • 徐州服饰网站建设想做个app软件需要什么条件
  • 做网站的排名专门做简历的网站软件
  • 网站建设所采用的技术网站开发设计工程师职责简介
  • 手机 互动网站案例银行网站建设前期合同
  • 网站未备案wordpress52麻将官方网站做代理
  • 老网站文章突然无收录wordpress文件路径
  • 福建省建设继续教育网站商业网站建设与维护
  • 网络工程专业是什么做优化排名会不会影响网站速度
  • 企业网站哪家公司好seo课程简介
  • 高质量网站外链平台利用html做博客网站
  • 广州我要做网站我的世界做图片的网站
  • 互联网门户网站模板网站建设 职责