translator.js

4 0 0
                                        

const util = require('../../utils/util.js')
const app = getApp()

Page({data: {curLang: {},langList: app.globalData.langList},
  onShow: function () {this.setData({ curLang: app.globalData.curLang })},
 
  onTapItem: function (e) {
let langObj = e.currentTarget.dataset
wx.setStorageSync('language', langObj)
this.setData({ 'curLang': langObj })
app.globalData.curLang = langObj
wx.switchTab({ url: '/pages/index/index' })}})

const app = getApp()

Page({data:{history:[]},onLoad:function(options){},

  onShow:function(){this.setData({history:wx.getStorageSync('history')})},

  onTapItem:function(e){wx.reLaunch({url:'/pages/index/index?query=
{e.currentTarget.dataset.query}'})},

  onClearHistory: function(){this.setData({history: []})wx.clearStorage('history')},
  onHide: function () {},
  onUnload: function () {},
  onPullDownRefresh: function () {},
  onReachBottom: function () {},
  onShareAppMessage: function () {}})
 
import { translate } from '../../utils/api.js'
const app = getApp()

Page({data: {query: '',hideClearIcon: true,result: [],curLang: {}},

  onLoad: function (options) { 
console.log('onload..')
console.log(options)
if (options.query) {
  this.setData({ query: options.query })
  this.setData({ 'hideClearIcon': false })}},
 
  onShow: function () {
if (this.data.curLang.lang !== app.globalData.curLang.lang) {
  this.setData({ curLang: app.globalData.curLang })
  this.onConfirm()}},
 
  onInput: function (e) {
this.setData({ 'query': e.detail.value })
if (this.data.query.length > 0) {  
  this.setData({ 'hideClearIcon': false })
} else {
  this.setData({ 'hideClearIcon': true })}

console.log('focus')},

  onTapClose: function () {
this.setData({ query: '', hideClearIcon: true })
this.setData({ result: '' })
console.log('clearAll')},

  onConfirm: function () {
if (!this.data.query) return 
translate(this.data.query, { from: 'auto', to: this.data.curLang.lang }).then(res => {
  this.setData({ 'result': res.trans_result })
  let history = wx.getStorageSync('history') || []
  history.unshift({ query: this.data.query, result: res.trans_result[0].dst })
  history.length = history.length > 10 ? 10 : history.length
  wx.setStorageSync('history', history)})}})

   import md5 from './md5.min.js'
   const appid = ''
   const key = ''

function translate(q, { from = 'auto', to = 'auto' } = { from: 'auto', to : 'auto'}) {

  return new Promise((resolve, reject) => {
let salt = Date.now()
let sign = md5('${appid}${q}${salt}${key}')
wx.request({
  url: 'https://fanyi-api.baidu.com/api/trans/vip/translate',
  data: {{}q,from,to,appid,salt,sign},
 
  success(res) {if(res.data && res.data.trans_result) {resolve(res.data)} else {
  reject({ status: 'error', msg: 'The translation failed.' })
  wx.showToast({title: 'The translation failed.',icon: 'none',duration: 3000})}},

  fail(){reject({ status: 'error', msg: 'The translation failed.' })
wx.showToast({title: 'The translation failed.',icon: 'none',duration: 3000})}})})}
 
module.exports.translate = translate

  const formatTime = date => {
  const year = date.getFullYear()
  const month = date.getMonth() + 1
  const day = date.getDate()
  const hour = date.getHours()
  const minute = date.getMinutes()
  const second = date.getSeconds()

return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')}

const formatNumber = n => {n = n.toString()return n[1] ? n : '0' + n}

module.exports = {formatTime: formatTime}

App({onLaunch: function () {
this.globalData.curlang = wx.getStorageSync('curLang') || this .globalData.langList[0]},

globalData: {curLang: {},langList: [{
  'chs': 'English','lang': 'en','index': 0},{
  'chs': 'Zwahili','lang': 'zh','index': 1},{
  'chs': 'Japanese','lang': 'jp','index': 2},{
  'chs': 'Korean','lang': 'kor','index':3},{
  'chs': 'French','lang': 'fra','index':4},{
  'chs': 'Spanish','lang':'spa','index': 5},{
  'chs': 'Arabic','lang': 'ara','index': 6}]}})
 
"Accreditations: F0rl, "

My Prog AdventuresWhere stories live. Discover now