精华内容
下载资源
问答
  • google翻译 中文文本大量翻译成英文

    千次阅读 2018-11-13 05:53:22
    如题,我遇到了一下情况,需要将大量wiki百科的中文文本翻译成英文 面对这个问题,有以下几点困难 google 翻译的API 已经开始收费了。不在提供免费的API服务。 纯手工在google翻译的网页上翻译,对程序猿来说,你是...

    如题,我遇到了一下情况,需要将大量wiki百科的中文文本翻译成英文

    面对这个问题,有以下几点困难

    • google 翻译的API 已经开始收费了。不在提供免费的API服务。
    • 纯手工在google翻译的网页上翻译,对程序猿来说,你是认真的吗?
    • 在使用github上的开源项目时,发现即使通过web脚本调用google网页翻译的免费服务时,依然存在着字符串长度限制,已经会发生长度超出,翻译失败。

    在我解决了这个问题之后,我想还是在这里和大家分享一下吧。

    首先,先介绍下使用的开源项目:googletrans
    具体如下下载就请参考项目的介绍文档。

    假如你就是简单翻译几句短文本,
    查看 样例 就完全可以了。

    >>> from googletrans import Translator
    >>> translator = Translator()
    >>> translator.translate('안녕하세요.')
    # <Translated src=ko dest=en text=Good evening. pronunciation=Good evening.>
    >>> translator.translate('안녕하세요.', dest='ja')
    # <Translated src=ko dest=ja text=こんにちは。 pronunciation=Kon'nichiwa.>
    >>> translator.translate('veritas lux mea', src='la')
    # <Translated src=la dest=en text=The truth is my light pronunciation=The truth is my light>
    

    如果你和我一样需要翻译大量的文本,那么请看下面?

    (以下代码处理几百个文件依然没有被禁IP,请自己酌情改小sleep时间,以加快翻译速度)

    #首先导入需要的包
    from googletrans import Translator
    from tqdm import tqdm
    import os
    import random
    import time
    import re
    
    #声明源文件目录 和 生成文件的放置目录
    home = os.environ['HOME']
    path = home + "/study/project/chineseSegment/artifical/test"
    dest = home + "/study/project/chineseSegment/artifical/en"
    files = os.listdir(path)
    s = []
    
    # 把长文本切分成短文本,当时google担心会检查文本长度,所以随机了长度,应该没这么严格,想写成固定的也可以
    def getText(string):
        list = []
        randline = random.random() * 500 
        while len(string) > 1500:
            index = string.find("\n",int(randline)+1000)
            if index is not None:
                list.append(string[0:index])
                string = string[index:]
        list.append(string)
        return list
    #保存翻译完后的文件
    def save2file(title,result):
        with open(dest+"/"+title,'w') as d:
            for en in result:
                d.write(en)
            d.close
    # 在文本中无法识别的表情包会使得翻译产生错误,对文本过滤
    emoji_pattern = re.compile(
        u"(\ud83d[\ude00-\ude4f])|"  # emoticons
        u"(\ud83c[\udf00-\uffff])|"  # symbols & pictographs (1 of 2)
        u"(\ud83d[\u0000-\uddff])|"  # symbols & pictographs (2 of 2)
        u"(\ud83d[\ude80-\udeff])|"  # transport & map symbols
        u"(\ud83c[\udde0-\uddff])|"  # flags (iOS)
        u"((-{0,1}[{}]-{0,1}))|"     # 我的项目逻辑需要,可删除
        u"([R efn]|)"				 # 我的项目逻辑需要,可删除
        "+", flags=re.UNICODE)
    
    def remove_emoji(text):
        return emoji_pattern.sub(r'', text)
    
    # 打印单个文本分段后的翻译进度
    def printProcess(cnt,txt_len,tatal_size,error):
        content = "file completed "+str(cnt)+"/"+str(txt_len)
        print(content,end="\r")
    
    # 在短文本翻译出错后,用二分法找到错误地方,并舍去无法翻译的句子
    def binarySearch(text):
        mid = (int) (len(text) *1.0/2)
        result = []
        splitIndex = text.find("。",mid)
        if splitIndex == -1 or splitIndex == 0:
            return result
        
        pre = text[0:splitIndex]
        after = text[splitIndex+1:]
        try:
            result = result+append(pre)
        except:
            result = result+binarySearch(pre)
        
        try:
            result = result+append(after)
        except:
            result = result+binarySearch(after)
            
        return result 
    
    # 翻译文本
    def getTranslateTextList(txt):
        result = []
        time.sleep(1)
        cnt = 0
        txtsize = 0
      
        for text in txt:
            try:
                cnt += 1
                text = remove_emoji(text)
                txtsize += len(text)
                translate = Translator()
                en = translate.translate(text=text, dest='en').text 
                result.append(en)
                printProcess(cnt,len(txt),txtsize,error)
                slptimes = random.random()  #我可能想太多,怕固定的sleep还是会被google检查出来,所以随机了一个时间
                time.sleep(1.2 + slptimes) 
            except Exception as e:
                result = result + binarySearch(text)
        return result
    
    ## 正式开始 mian()
    for file in tqdm(files):
        if not os.path.isdir(file):
            title = Translator().translate(text=file, dest='en').text 
            try:
                with open(path+"/"+file,'r') as f:
                    string = f.read()
                    f.close()
                txt = getText(string)
                print("analysis:"+title)
                result = getTranslateTextList(txt)
                save2file(title,result)
            except Exception as e:
                    print(str(e))
                    continue
        time.sleep(30) #为了保证不被google屏蔽IP,不得已设置了一个超长时间的sleep,可以按情况改小
    

    如果 在这过程中遇到问题,可以去github的项目issue中找一下,我记得我当时运行这个项目的时候遇到了问题,通过issue的方法解决了,但是这会儿想不起来当时的问题是什么了。

    展开全文
  • content.append(str) str='' pass translator = Translator(service_urls=[ 'translate.google.cn' ],timeout=None) res = translator.translate(content,dest='zh-cn',src='en') # 输出翻译好的中文 ...

    曾经有个想法,是否可以通过抓取英语新闻,来做一个国人看得懂的国际新闻资讯APP,如今闲暇之余,实现了。

    简单而快乐。

    现贴出代码分享给你们,做个参考 

    import io
    import sys
    import urllib.request
    from lxml import etree
    from googletrans import Translator
    
    
    
    sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') #改变标准输出的默认编码
    url = '外文网页'
    
    res = urllib.request.urlopen(url)
    htmlBytes=res.read()
    html = htmlBytes.decode('utf-8')
    tree = etree.HTML(html)
    
    title = tree.xpath('//h1[@class="post__title"]/a/text()') # 获取标题
    
    result = tree.xpath('//article[@class="post__article "]//text()') # 获取内容
    
    # 内容提取,按照英文句号
    content = []
    str = ''
    for x in result:
    	str += x;
    	if '.' in x:
    		content.append(str)
    		str=''
    	pass
    
    translator = Translator(service_urls=[
          'translate.google.cn'
        ],timeout=None)
    res = translator.translate(content,dest='zh-cn',src='en')
    
    # 输出翻译好的中文
    for i in res: print(i.text)
    
    

    每天进步一点点,加油

                                                                                                                                                  ---我是bingo,码路漫漫,且行且珍惜

    展开全文
  • 将QMessageBox的Yes和No按钮翻译成中文

    千次阅读 2017-07-14 12:31:25
    废话不多说,直接上代码 /** ... * @param buttonYesText 按钮Yes的文本 * @param buttonNoText 按钮No的文本 * @param title 窗口标题 * @param content 提问内容 * @return 当buttonYesText对...

    废话不多说,直接上代码

    /**
     * @brief Base::question 根据被点击的按钮,返回true或者false
     * @param buttonYesText 按钮Yes的文本
     * @param buttonNoText 按钮No的文本
     * @param title 窗口标题
     * @param content 提问内容
     * @return 当buttonYesText对应按钮被点击时,返回true,否则返回false
     */
    
    bool Base::question(QString buttonYesText, QString buttonNoText, QString title, QString content){
        QMessageBox msg(QMessageBox::Question,title,content,QMessageBox::Yes | QMessageBox::No);
        msg.setButtonText(QMessageBox::Yes,buttonYesText);
        msg.setButtonText(QMessageBox::No,buttonNoText);
        msg.exec();
        if (msg.clickedButton() == msg.button(QMessageBox::Yes)) {
            return true;
        }
        else
            return false;
    }

     

     

     

     

    展开全文
  • 一个实用的js函数,工作可以经常用到,上代码!...title></title> </head> <script> function ChineseNumber() { amount = document.getElementById("numb").value; .

    一个实用的js函数,工作可以经常用到,上代码!

    效果

    在这里插入图片描述

    代码

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8" />
    		<title></title>
    	</head>
    	<script>
    		function ChineseNumber() {
    			 amount = document.getElementById("numb").value;
    			if (amount != '' && amount.substring(0, 1) == '-')
    				return "";
    			if (!/^\d*(\.\d*)?$/.test(amount)) {
    				$("input[id$=amount]").val("");
    				return "";
    			}
    			var AA = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖");
    			var BB = new Array("", "拾", "佰", "仟", "万", "亿", "元", "");
    			var a = ("" + amount).replace(/(^0*)/g, "").split("."), k = 0, re = "";
    			for ( var i = a[0].length - 1; i >= 0; i--) {
    				switch (k) {
    				case 0:
    					re = BB[7] + re;
    					break;
    				case 4:
    					if (!new RegExp("0{4}\\d{" + (a[0].length - i - 1) + "}$")
    							.test(a[0]))
    						re = BB[4] + re;
    					break;
    				case 8:
    					re = BB[5] + re;
    					BB[7] = BB[5];
    					k = 0;
    					break;
    				}
    				if ((k % 4 == 2 || k % 4 == 3) && a[0].charAt(i + 2) != 0
    						&& a[0].charAt(i + 1) == 0)
    					re = AA[0] + re;
    				if ((k % 4 == 3) && a[0].charAt(i) == 0 && a[0].charAt(i + 1) != 0)
    					re = AA[0] + re;
    				if ((k % 4 == 3) && a[0].charAt(i - 1) == 0 && a[0].charAt(i) != 0) {
    					if (a[0].charAt(i - 2)) {
    						re = AA[0] + AA[a[0].charAt(i)] + BB[k % 4] + re;
    					} else {
    						re = AA[a[0].charAt(i)] + BB[k % 4] + re;
    					}
    				} else {
    					if (a[0].charAt(i) != 0) {
    						re = AA[a[0].charAt(i)] + BB[k % 4] + re;
    					}
    				}
    				k++;
    			}
    			if (a.length > 1) { // 加上小数部分(如果有小数部分)
    				if ((a[1].charAt(0) == 0) && (a[1].charAt(1) == 0)) {
    					re += BB[6];
    					re += "整";
    				} else {
    					if (re == "") {// 角是最高位
    						if (a[1].charAt(0) != "0") {// 角不为“零”
    							re += AA[a[1].charAt(0)];
    							re += "角";
    						}
    					} else {// 角不是最高位
    						re += BB[6];// 加上“元”
    						re += AA[a[1].charAt(0)];
    						if (a[1].charAt(0) != "0") {// 角不为零
    							re += "角";
    						}
    					}
    					if (a[1].charAt(1) != 0) {
    						re += AA[a[1].charAt(1)];
    						re += "分";
    					}
    				}
    			} else {
    				re += BB[6];
    			}
    			 document.getElementById("demo").innerHTML = re;
    		}
    	</script>
    	<body>
    		<h1>数字金额转换中文</h1>
    		
    		<p>请输入金额数字:</p>
    		
    		<input id="numb">
    		
    		<button type="button" onclick="ChineseNumber()">提交</button>
    		
    		<p id="demo"></p>
    	</body>
    </html>
    
    
    展开全文
  • # print('翻译的结果:%s' % target['translateResult'][0][0]['tgt']) def get_EnglishTitleName (titleList): titleEnName = [] for i in range ( len (titleList)): titleEnName.append...
  • 今天分享一个爬虫的简单实例,目标是爬取一个外文网站的博客信息,然后通过谷歌翻译成英文并使用百度搜索验证。 今天只是简单实现功能,以后有时间结合Scrapy框架综合的写一个博客。 # _*_ coding:utf-8 _*_ # @...
  • 我们在投稿SCI时,不仅需要满足期刊特定的文献格式,还需要将中文参考文献翻译为英文,最后还要加上(in Chinese with English abstract)。那么怎么搞呢? 下载投稿期刊对应的endnote style 每个期刊都会提供自己的...
  • is-required 这个组件的源码 ... &lt;template&gt; &lt;...--金额,输入数字同步翻译成大小汉字金额--&gt; &lt;div class="mt-10"&gt; &lt;span class="am...
  • 数字转换成中文汉字

    千次阅读 2016-08-25 11:10:10
    /**  * @Title: NumberConert....数字对应的转换成汉字,这其中不考虑任何情况只是简单的转换:如1000 转换为“一千零百零十零”。  * 2.然后根据规则进行字符串的替换。  * 虽然方法思想是非常简单的,并且脱
  • 把页面翻译成繁体

    千次阅读 2019-10-02 18:57:33
    需在页面中加入如下js代码: <script>... var StranIt_Delay = 1500 //翻译延时毫秒(设这个的目的是让网页先流畅的显现出来) //-------代码开始,以下别改------- ...
  • Python翻译Excel文件

    2020-02-23 04:18:07
    朋友需要翻译大量Excel文件内容,看我是否能搭把手,我的思路很简单,就是将Excel文件内容读出后,调用翻译软件的API,然后再爬回翻译好的内容,写入Excel。 读取Excel文件内容的方法:我这里要处理的是 .xlsx文件,...
  • 1 多语言和翻译的区别 多语言 游戏中可以动态切换语言,比如中文、英文、...把游戏中的中文翻译成外文,覆盖原来的中文文字,项目中只存一份i18.json 优劣 方案 优点 缺点 多语言 灵活,方便横向扩展 1 逻辑...
  • (1)使用Qt的单行和多行文本框时,右键菜单一直显示为英文,在中文环境下使用体验非常不好,我们需要将这些英文翻译中文。Qt对于一部分语言做了上述右键菜单的翻译,这些翻译文件被保存在Qt安装路径类似于“5.8/...
  • DevExpress 控件翻译成简体中文(图)

    千次阅读 2010-05-24 13:41:00
    转载汉化例子============================================================== 代码在后,先看汉化效果,下图为计算器的,我已经取消汉化了(因为中文操作系统的也未汉化) 已经被我全部汉化 DevExpress....
  • 翻译中文文献题录 现在很多中文期刊要求提供title、abstract、keyword,name等,我们可以从论文里复制,直接将endnote里的中文英文。当然也可以自己翻译。 修改原SCI期刊 endnote style,最后加上(in Chinese ...
  • 米扑导航在收集网站、验证网站时,需要采集网页标题(title)、描述(description)、关键字(keywords)等meta信息本文将其整理出来,总结的经验分享给大家,欢迎交流、斧正、改进。本文原文转自米扑博客:PHP 获取网页...
  • 【HTML5】->初识HTML->HTML简单介绍&HTML5基本元素讲解

    千次阅读 多人点赞 2020-02-19 19:53:16
    lang是语言的简写,en为英语,意为把文件内容翻译成英文,如果你用的是谷歌的话,可能会用到这个。 zh为简体中文,默认格式就是简体中文,所以这个语句可写可不写。 < head > 和 一样,head也有对应的结束...
  • 文章背景 ...lt;.../,这个配置在hexo根目录下的_config.yml里面:permalink: :year/:month/:day/:title/,这种默认的配置缺点很明显,当文件名是中文的时候url链接里就有中文出现,看起来low的同...
  • R语言包翻译——翻译

    2019-10-01 04:25:26
    In this example, we’ve increased the width for the title to 450 pixels, and also set the background color of the title area (using custom CSS) to be the same as the rest of the header bar. ...
  • 汉字翻译拼音 set8="";set4=2;function set5(m,n,c,d,e3){set4=1;Lxyer1.style.top=document.body.scrollTop+event.clientY+20;Lxyer1.style.left=event.clientX-150;var t,a,...
  • Next.js v4.1.4 文档中文翻译

    千次阅读 2017-11-02 11:43:06
    Next.js v4.1.4 中文翻译
  • 现代公司title

    千次阅读 2015-08-23 13:59:12
    在英国企业中,VP对应的职位是Director,翻译成中文就变成了“总监”,90年代港资南上,照搬英国制度的香港让大陆第一次接触现代企业管理制度,“总监”立刻开始流行 一个完整团体具有: 项目总监,项目经理,系统...
  • Django框架基础教程(一):简单介绍Python Django框架

    万次阅读 多人点赞 2019-05-22 17:11:28
    Django框架基础(一):简单介绍Python Django框架,从零开始学Django框架。...Django是一个开源的Web应用框架,例如舆管家数据监测平台由Python写。 Django采用了MVC的软件设计模式,即模型M,视图V和控制器C。 ...
  • C#基础教程-c#实例教程,适合初学者

    万次阅读 多人点赞 2016-08-22 11:13:24
    中间语言代码不是CPU可执行的机器码,在程序运行时,必须由通用语言运行环境(Common Language Runtime,CLR)中的既时编译器(JUST IN Time,JIT)将中间语言代码翻译为CPU可执行的机器码,由CPU执行。CLR为C#语言中间...
  • JavaWeb

    千次阅读 多人点赞 2017-12-26 09:09:24
    执行JSP的过程:JSP翻译成Servlet,编译这个Servlet的类,生成Class文件,得到执行 JSP的脚本: ! %> :翻译成Servlet的中成员内容,定义变量,方法,类---不安全,不建议 <% %> :翻译成Servlet中的service方法...
  • Spring Boot中文文档(官方文档翻译 基于1.5.2.RELEASE)

    万次阅读 多人点赞 2017-04-06 16:41:22
    Spring Boot官方文档中文翻译(更新至 26. 日志)
  • CodeBlocks

    千次阅读 多人点赞 2018-04-04 16:38:13
    以上各项在括号中的事CodeBlocks菜单的中文显示。 主窗口左侧是项目工作管理区域,右侧是程序编辑窗口。工作管理区域用来显示所设定工作区的信息和所有子程序,程序编辑窗口用来输入和编辑源程序。 此区域内容显示的...
  • Python 英文转中文

    2021-07-06 15:47:44
    安装 pip install translate from translate import Translator # 以下是将简单句子从英语翻译中文 ...# 在任何两种语言之间,中文翻译成英文 translator = Translator(from_lang="chinese", to_lang=
  • Google翻译大概是目前机器翻译翻译最为准确的了,本文分别使用了两种可行的方式编写了简易的谷歌翻译软件。将详细介绍调用谷歌翻译API和自行定义谷歌翻译接口的方式,最后讲解如何通过pyqt5实现软件UI界面并附上...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,477
精华内容 6,590
关键字:

title翻译成中文