#' translate using bing,baidu,google,etc
#' @description translate using onlie translators, such as bing(A),baidu(C),google(A-)
#' @param string the source text
#' @param src the source language
#' @param dest the destination language
#' @return result translated string
#' @export
#' @expamples
#' demo4= "珠江是华南一大河系,流经广州市,是中国第三长的河流,仅次于长江和黄河。珠江三角洲是中国最发达的地区之一,面积约 11000 平方公里。它在面积和人口方面也是世界上最大的城市聚集区。珠江三角洲九个最大城市共有 5700 多万人口。上世纪 70 年代末中国改革开放以来,珠江三角洲已成为中国和世界主要经济区域和制造中心之一。"
#' onetrans(demo4,engine = 'bing', src= 'zh-CN',dest = 'en')
#' onetrans(demo4,engine = 'baidu',src= 'zh-CN',dest = 'en')
#' onetrans(demo4,engine = 'google', src= 'zh-CN',dest = 'en')
#'
#' txten="The Pearl River Delta is also the largest urban agglomeration in the world in terms of size and population. "
#' onetrans(txten, engine = "google",src='en',dest = "zh-CN")
#' onetrans(txten, engine = "bing",src='en',dest = "zh-CN")
#' onetrans(txten, engine = "baidu",src='en',dest = "zh-CN")
#'
#' engines = c("google","bing","baidu")
#' purrr::map(engines,~onetrans(txt,engine=.x,src='en',dest='zh-CN'))
#'
onetrans <- function(string, engine = "bing", src = "en", dest = "zh-CN"){
# trim the empty
#string = stringr::str_replace_all(string," ","")
#trans <- reticulate::import("translation")
# google translate
if (engine == "google") {
res = gmtools::ggtrans(string, src,dest)
} else if (engine== "bing") {
path <- file.path(system.file(package = "gmtools"),'onetrans.py')
cmd <- paste0('/anaconda3/bin/python ', path,' "' ,string,'" "',dest,'"')
trans <- system(command=cmd, intern = TRUE)[1]
#trans <- reticulate::import("translation")
#res <- trans$bing(string, dst=dest)
res <- c(string,trans,"必应翻译")
} else if (engine == "baidu") {
if (src == "zh-CN") {src = "zh"}
if (dest == "zh-CN") {dest = "zh"}
# path <- file.path(system.file(package = "gmtools"),'onetrans.py')
#cmd <- glue::glue("/Users/gabe/anaconda/bin/python {path} '{string}' '{engine}' '{dest}'")
#trans <- system(command=paste0('"',cmd,'"'), intern = TRUE)[1]
baidu_trans = function(string,src,dest){
if (src=="zh") {
string1 = stringr::str_replace_all(string," ","")
} else if (src=="en") {
string1 = stringr::str_replace_all(string," ","+")
}
bd = glue::glue("http://fanyi.baidu.com/v2transapi?from={src}&to={dest}&query={string1}&transtype=translang&simple_means_flag=3")
trans = jsonlite::fromJSON(bd)
return(trans$trans_result$data$dst)
}
res <- baidu_trans(string, src=src,dest=dest)
res <- c(string,res,"百度翻译")
}
return(res)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.