基于有道翻译的英翻中微信小程序

基于有道翻译的英翻中微信小程序

环境

微信开发者工具
微信小程序云开发
node.js v12.16.3
axios@0.20.0
cheerio@1.0.0-rc.3

相关内容

Node.js有道翻译爬虫

客户端

创建新的微信小程序项目,创建时选择不使用小程序云开发,进入项目后自行编写云函数,并修改下列文件

project.config.json

project.config.json
其中 "cloudfunctionRoot" : "cloud/"用于设置云函数根目录,cloud/可以修改为任意目录名
修改<appid>

{
	"description": "项目配置文件",
	"cloudfunctionRoot": "cloud/",
	"packOptions": {
		"ignore": []
	},
	"setting": {
		"urlCheck": true,
		"es6": true,
		"postcss": true,
		"preloadBackgroundData": false,
		"minified": true,
		"newFeature": true,
		"coverView": true,
		"nodeModules": false,
		"autoAudits": false,
		"showShadowRootInWxmlPanel": true,
		"scopeDataCheck": false,
		"checkInvalidKey": true,
		"checkSiteMap": true,
		"uploadWithSourceMap": true,
		"babelSetting": {
			"ignore": [],
			"disablePlugins": [],
			"outputPath": ""
		},
		"useCompilerModule": true,
		"userConfirmedUseCompilerModuleSwitch": false
	},
	"compileType": "miniprogram",
	"libVersion": "2.13.0",
	"appid": "<appid>",
	"projectname": "spider",
	"debugOptions": {
		"hidedInDevtools": []
	},
	"isGameTourist": false,
	"simulatorType": "wechat",
	"simulatorPluginLibVersion": {},
	"cloudfunctionTemplateRoot": "cloudfunctionTemplate",
	"condition": {
		"search": {
			"current": -1,
			"list": []
		},
		"conversation": {
			"current": -1,
			"list": []
		},
		"game": {
			"currentL": -1,
			"list": []
		},
		"miniprogram": {
			"current": -1,
			"list": []
		}
	}
}

App.js

app.js

修改下述代码中的<环境ID>

//app.js
App({
  onLaunch: function () {
    wx.cloud.init({
      env: "<环境ID>",
      // traceUser: true,
    });
  },
  globalData: {
    userInfo: null
  }
})

index.wxml

pages\index\index.wxml


<!--index.wxml-->
<view class="container">
  <view class="userinfo">
    <button bindtap="translate">翻译</button>
  </view>
  <view class="usermotto">
    <input placeholder="Word" bindinput="getWord"></input>
  </view>
  <view class="usermotto">
    <text class="user-motto">{{motto}}</text>
  </view>
</view>

index.js

pages\index\index.js

//index.js
//获取应用实例
const app = getApp()

Page({
  data: {
    motto: '释义',
    word : ''
  },
  onLoad: function () {
    
  },
  translate: function(e) {
    var that = this;
    wx.cloud.callFunction({
      name: "translator",
      data: {
        word : that.data.word
      },
      success: (res) => {
        console.log(res.result["meaning"]);
        that.setData({
          motto : res.result["meaning"]
        });
      },
      fail: (res) => {
        console.log("fail", res);
      }
    });
    console.log(this.data.word);
  },
  getWord: function(e) {
    this.setData({
      word : e.detail.value
    });
  }
})

云函数

创建云函数

右击云函数根目录,点击新建Node.js云函数,输入translator保存,右击新建的Node.js云函数目录translator,点击在终端打开,输入npm install axios cheerio,进行npm安装

npm安装

npm install axios cheerio

index.js

基于有道翻译和爬虫技术获取英文的中文释义,将结果返回给小程序
爬虫获取英文的中文释义可以参考Node.js有道翻译爬虫
cloud\translator\index.js

// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()

// 云函数入口函数
exports.main = async (event, context) => {
    const cheerio = require("cheerio");
    const axios = require("axios");

    var str = null;
    try {
        const a = await axios.get(`http://www.youdao.com/w/eng/${event.word}`).then((response) => {
        let $ = cheerio.load(response.data);
            $(".results-content").each((index, element) => {
                str = String($(".trans-container").children().first().text()).replace(' ', '').replace('\n', '')
                console.log(str);
            });
      });
    } catch(err) {
        console.log(err);
    }

    return {meaning : str};
}

云函数部署

右击Node.js云函数目录,点击上传并部署:所有文件,等待更新云函数translator的云调用权限上传云函数translator提示出现后上传成功

编译

点击上方的编译或快捷键Ctrl+S,编译小程序客户端

编译结果

左侧的模拟器可以看到

测试结果

最后

  • 由于博主水平有限,不免有疏漏之处,欢迎读者随时批评指正,以免造成不必要的误解!
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以使用Python的GUI库Tkinter来编写一个简单的有道翻译小程序。以下是一个基本的示例代码: ```python import tkinter as tk import requests import json def translate(word): # 请求有道翻译API url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} data = { 'i': word, 'from': 'AUTO', 'to': 'AUTO', 'smartresult': 'dict', 'client': 'fanyideskweb', 'salt': '1504518855641', 'sign': '15b4d6f4e9e50b3b43a7c6ce6ba3c6f8', 'doctype': 'json', 'version': '2.1', 'keyfrom': 'fanyi.web', 'action': 'FY_BY_CLICKBUTTON', 'typoResult': 'true' } response = requests.post(url, headers=headers, data=data) result = json.loads(response.text) return result['translateResult'][0][0]['tgt'] def translate_word(): # 获取输入框的文本 word = entry.get() # 调用翻译函数 result = translate(word) # 在输出框显示翻译结果 text.delete(1.0, tk.END) text.insert(tk.END, result) # 创建主窗口 root = tk.Tk() root.title('有道翻译') # 创建输入框和按钮 entry = tk.Entry(root, width=30) entry.pack(padx=10, pady=10) button = tk.Button(root, text='翻译', command=translate_word) button.pack(padx=10, pady=5) # 创建输出框 text = tk.Text(root, width=30, height=5) text.pack(padx=10, pady=10) # 进入消息循环 root.mainloop() ``` 该程序使用requests库向有道翻译API发送POST请求,获取翻译结果,并使用Tkinter创建了一个简单的GUI界面。用户输入需要翻译的单词或句子,点击翻译按钮后,程序会返回翻译结果并在输出框显示。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值