精华内容
下载资源
问答
  • python实现游戏同步翻译字幕前言思路代码部署方式待改进 前言 为了愉快地学英语(玩galgame),用Python实现了实时CLANNAD中文字幕。 按下快捷键时会弹出半透明的中文翻译 思路 使用pykeyboard循环捕捉按键事件 使用...

    python实现游戏同步翻译字幕

    前言

    为了愉快地学英语(玩galgame),用Python实现了实时CLANNAD中文字幕。
    按下快捷键时会弹出半透明的中文翻译
    在这里插入图片描述

    思路

    1. 使用pykeyboard循环捕捉按键事件
    2. 使用PIL的ImageGrab截取需要翻译部分的图片
    3. 调用pytesseract进行ocr识别
    4. 调用百度的api翻译
    5. 使用wxPython的GUI显示到屏幕上

    代码

    import keyboard
    import wx
    from PIL import ImageGrab
    import win32api
    import http.client
    import hashlib
    import urllib
    import random
    import json
    from pip._vendor.distlib.compat import raw_input
    from PIL import Image
    import pytesseract
    wide=win32api.EnumDisplayMonitors(None, None)[0][2][2]
    high=win32api.EnumDisplayMonitors(None, None)[0][2][3]
    app=wx.App()
    def show_win(text='default',x=0,y=0,high=1000,weight=300):
        '''
        text:要显示的内容
        x:显示框左上角的x坐标
        y:显示框左上角的y坐标
        high:显示框的高度
        weight:显示框的宽度
        '''
        global app
        win = wx.Frame(None,title="翻译",pos=(x,y),size=(weight,high),style=wx.STAY_ON_TOP)#窗口属性
        win.SetTransparent(100)#透明度
        win.Show()
        font1 = wx.Font(50, wx.MODERN, wx.NORMAL, wx.NORMAL, False, '黑体')#字体大小等设置
        richText = wx.TextCtrl(win,value='',pos=(0,0),size=(weight,high))#文本框属性
        richText.SetInsertionPoint(0)
        richText.SetFont(font1)
        richText.AppendText(text)
        wx.FutureCall(20000, win.Destroy)#关闭时间20s
        app.MainLoop()
    def translate(content):
        '''
        参数:
            content: 翻译的内容
        返回
            翻译结果
        '''
        appid = '你的appID'
        secretKey = '你的secretKey '
        httpClient = None
        myurl = '/api/trans/vip/translate'
        q = content
        fromLang = 'en' # 源语言
        toLang = 'zh'   # 翻译后的语言
        salt = random.randint(32768, 65536)
        sign = appid + q + str(salt) + secretKey
        sign = hashlib.md5(sign.encode()).hexdigest()
        myurl = myurl + '?appid=' + appid + '&q=' + urllib.parse.quote(
            q) + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(
            salt) + '&sign=' + sign
        httpClient = http.client.HTTPConnection('api.fanyi.baidu.com')
        httpClient.request('GET', myurl)
        # response是HTTPResponse对象
        response = httpClient.getresponse()
        jsonResponse = response.read().decode("utf-8")# 获得返回的结果,结果为json格式
        js = json.loads(jsonResponse)  # 将json格式的结果转换字典结构
        dst = str(js["trans_result"][0]["dst"])  # 取得翻译后的文本结果
        return dst
    def 监控():
        while True:
            #循环监听按键
            if keyboard.is_pressed('w'):
                ImageGrab.grab((int(wide*0.1),int(high*0.8),int(wide*0.9),int(high*0.95))).save('now.png')
                text = pytesseract.image_to_string(Image.open(r'now.png'))
                text=str(translate(text))
                show_win(text=text,x=int(wide*0.1),y=int(high*0.7),high=150,weight=2000)
            elif keyboard.is_pressed('q'):
                print('Quit!')
                break
    if __name__=='__main__':
        监控()
    
    

    部署方式

    • 安装python以及所需要的包
    • 安装tesseract
    • 根据程序的注释设置相关的参数
    • 直接运行

    待改进

    • 程序移植优化,可以快速选定英文的位置和中文要出现的位置
    • 翻译自动出现
    展开全文
  • 只够我把它的文档(几乎)同步翻译完而已!现在,它已经发布在了 https://angular.cn/docs ,打开浏览器,刷新一下,等几秒钟(因为 ServiceWorker 要先做缓存)就可以看到最新版的文档了。这次,文档组的几位作者对一些...

    从 Angular 7 发布(2018-10-18)至今已经过去四天了。四天的时间够干嘛的?只够我把它的文档(几乎)同步翻译完而已!

    现在,它已经发布在了 https://angular.cn/docs ,打开浏览器,刷新一下,等几秒钟(因为 ServiceWorker 要先做缓存)就可以看到最新版的文档了。

    这次,文档组的几位作者对一些大型主题进行了拆分,对一些章节进行了重写,并且增加了一些生僻但有用的知识点。此外,它还并入了 Angular CLI 的文档,你不用再到处找文章来了解它了。

    可以说,只要完整读一遍当前版本的官方文档,至少在理论储备方面,已经足够让你达到 Angular 的高级水平了。Angular 的 All-in-one 体现在各个方面,包括文档!

    现在,全部的原有章节都已经同步翻译完毕,一些新增的章节仍在翻译中,主要是动画进行了大幅度扩写,另外,依赖注入部分也增加了一些新文章。接下来趁着暂时还有空闲,我会在一两天内把剩下的部分都翻译完。

    ———— 2018-10-26 最新更新 ————

    除了动画部分之外已经完全翻译完了。

    ———— 2018-10-28 最新更新 ————

    已经完全完工啦,时间有点紧,欢迎大家纠错。

    展开全文
  • Bob Mac中文版是mac上一款非常好用的菜单栏翻译软件,也是小编目前用过的最好用的mac翻译软件,Bob翻译软件支持划词翻译,截图翻译和手动输入翻译,支持的翻译源有道翻译、百度翻译和谷歌翻译,使用起来非常不错,有...

    Bob Mac中文版是mac上一款非常好用的菜单栏翻译软件,也是小编目前用过的最好用的mac翻译软件,Bob翻译软件支持划词翻译,截图翻译和手动输入翻译,支持的翻译源有道翻译、百度翻译和谷歌翻译,使用起来非常不错,有需要翻译软件的朋友,欢迎前来安装体验!!

    原文链接:https://mac.orsoon.com/Mac/175821.html

    bob for mac中文版功能介绍

    功能描述预览
    划词翻译选中需要翻译的文本之后,按下划词翻译快捷键即可(默认 ⌥ + D
    截图翻译按下截图翻译快捷键(默认 ⌥ + S),截取需要翻译的区域
    输入翻译按下输入翻译快捷键(默认 ⌥ + A),输入需要翻译的文本,Enter 键翻译
    • 划词翻译在可以选中文本,并且可以复制的情况下使用
    • 截图翻译建议在无法选中或复制的情况下使用
    • 输入翻译通常在以上方法获取的文本不准的情况下使用

    支持的翻译源

    目前 Bob 支持有道翻译、百度翻译和谷歌翻译,以下对比比较粗糙,主要根据个人的使用体验评判的,具体细节可以自行感受

    功能有道翻译百度翻译谷歌翻译(国内)谷歌翻译
    支持的语种数量11428104104
    速度一般较慢较慢
    是否需要科学上网不需要不需要不需要需要
    英语音标
    句子翻译
    是否有 OCR 接口

    百度翻译和谷歌翻译可以识别驼峰形式的句子,形如 "WhatAreYouDoing"。

    由于谷歌翻译没有找到合适的 OCR 接口,所以在截图翻译的时候,使用有道的 OCR 接口进行识图,然后再调用谷歌的翻译接口进行翻译。

    国内谷歌翻译和谷歌翻译结果完全一样,只是谷歌翻译需科学上网使用,但国内谷歌翻译不需要。

    注意:如果你已经科学上网,那么国内谷歌翻译可能会无法使用。另外,如果你的科学上网配置不当,那会导致其他翻译接口如百度、有道翻译速度明显下降,请使用 PAC 模式而不是全局模式。

    Bob 免费版常见问题

    划词翻译获取不到文本?

    首先检查一下是否开启了辅助功能权限(文章前面有开启方法),如果已开启,再检查一下所选中的文本是否可复制。划词翻译本质上就是发出 ⌘ + C 这个组合键复制选中的文本,然后从剪切板获取文本进行翻译,所以如果文本本身没法复制,则没法获取到,此时建议使用截图翻译。

    有些软件或者网站复制文本之后还会在文本后面追加一些信息,所以有时候翻译的文本和选中的可能有些出入。

    Status Menu 的划词翻译 Item 为什么是灰色?

    因为划词翻译需要获取选中的文本,点击 Item 没法获取到选中的文本,所以设置为不可点击(灰色),不能点击但还放在 Menu 中是为了方便查看划词翻译快捷键

    朗读按钮点击了没反应?

    朗读按钮点击之后,会进行网络请求获取音频播放,没有反应可能是句子太长,加载较慢,当然也有可能是 BUG,后期会考虑点击之后进行一些 UI 提示

    翻译报错?

    报错描述可能原因建议方案
    首次使用显示「翻译中」开启软件后第一次使用,可能是正在获取 token,相对会更慢一些建议等待或重启软件
    总是显示「翻译中」或「请求异常」可能就是网络问题,或是科学上网软件导致的建议检查网络和科学上网软件设置
    「接口异常」可能是请求过于频繁,或者查询的文本当前翻译源不支持建议等下再试或者切换翻译源
    「数据解析异常」可能是相应翻译源的 API 变动或者翻译结果的极端情况软件没有覆盖到建议切换翻译源,上报 BUG 并等待软件更新

    当然,所有问题都可以尝试切换翻译源重启 Bob

    展开全文
  • 线程同步 synchronized

    2021-05-09 22:27:18
    线程同步 什么是线程同步? 我们可以在计算机上运行各种计算机软件程序。每一个运行的程序可能包括多个独立运行的线程...同步这个词是从英文synchronize(使同时发生)翻译过来的。我也不明白为什么要用这...

    线程同步

    什么是线程同步?

    我们可以在计算机上运行各种计算机软件程序。每一个运行的程序可能包括多个独立运行的线程(Thread)。 线程(Thread)是一份独立运行的程序,有自己专用的运行栈。线程有可能和其他线程共享一些资源,比如,内存,文件,数据库等。 

    多个线程同时读写同一份共享资源的时候,可能会引起冲突。这时候,我们需要引入线程“同步”机制即各位线程之间要有个先来后到,不能一窝蜂挤上去抢作一团。 

    同步这个词是从英文synchronize(使同时发生)翻译过来的。我也不明白为什么要用这个很容易引起误解的词。既然大家都这么用,咱们也就只好这么将就。 线程同步的真实意思和字面意思恰好相反。

    线程同步的真实意思,其实是“排队”:几个线程之间要排队,一个一个对共享资源进行操作,而不是同时进行操作。

     因此,关于线程同步,需要牢牢记住四点:

    1. 线程同步就是线程排队同步就是排队。线程同步的目的就是避免线程“同步”执行。这可真是个无聊的绕口令。 
    2. “共享”这两个字。只有共享资源的读写访问才需要同步。如果不是共享资源,那么就根本没有同步的必要。 
    3. 只有“变量”才需要同步访问变量需要同步,常量不需要(常量存放于方法区)。如果共享的资源是固定不变的,那么就相当于“常量”,线程同时读取常量也不需要同步。至少一个线程修改共享资源,这样的情况下,线程之间就需要同步。 
    4. 多个线程访问共享资源的代码有可能是同一份代码,也有可能是不同的代码;无论是否执行同一份代码,只要这些线程的代码访问同一份可变的共享资源,这些线程之间就需要同步。

    并发问题

    并发:同一个对象多个线程同时操作

    例子:

    1.上万人同时抢100张票

    如果每个人都买成功了,那么后台票数就会变成负数,出错。

    实际生活中也许会显示“你的手慢了”等表示你没有抢到

    2.两个银行同时取钱

    比如手机和柜台上都可以取钱,你卡上有500万,你想取300万,你媳妇想去500万,你俩同时去取,你媳妇在柜台上取,你在手机上操作的。你们取钱时都发现余额是500万,如果你们两个人都可以取出来,那么银行卡余额就是负的了,这是错误的情况。所以说你和你媳妇一定会形成一个排队的关系,有先后顺序的去取。

    3.食堂排队打饭

    现实生活中,我们会遇到”同一个资源,多个人都想使用”的问题,比如,食堂排队打饭,每个人都想吃饭,但窗口是有限的,最天然的解决办法就是:排队   一个个来.

                     

    什么时候需要线程同步?

    • 处理多线程问题时,多个线程访问同一个对象(即并发问题),并且某些线程还想修改这个对象。这时候我们就需要线程同步
    • 线程同步其实就是一种等待机制,多个需要同时访问此对象的线程进入这个对象的等待池形成队列,等待前面线程使用完毕,下一个线程再使用(就是排队,一个一个来)。

    如何实现线程同步? 

    队列和锁(synchronized)

    实现线程同步队列

     队列锁     ------>    同步,解决线程不安全的问题

    1. 队列:就是排队

    几个线程之间要排队,一个一个对共享资源进行操作,而不是同时进行操作。

    2. 锁  synchronized

    每个对象本身都有一把锁(sleep不会释放锁)

    比如一个景点里只有一个厕所,很多人都要去上厕所,所有人都在排队上厕所,这就已经形成队列了, 队列要保证安全,比如你进去了,然后如果厕所门没关,那么后面队列里的人就都进去了,这样这个厕所就不安全了。于是乎,厕所门上都会有一把锁,一个人进去了,然后就把门锁上,锁上之后,后面的人就进不去了,前面的人方便完之后,再把锁打开,然后下一个人才能继续使用锁,如此循环,这样才能保证里面安全。

    由于同一进程的多个线程共享同一块存储空间,在带来方便的同时,也带来了访问冲突问题,为了保证数据在方法中被访问时的正确性,在访问时加入锁机制   synchronized ,当一个线程获得对象排它锁,独占资源,其他线程必须等待使用后释放锁即可。

    但是锁存在以下问题:鱼和熊掌不可兼得,性能与安全不可兼得,必定会损失性能。

    • 一个线程持有锁会导致其他所有需要此锁的线程挂起;
    • 在多线程竞争下,加锁,释放锁,会导致比较多的上下文切换和调度延时,引起性能问题,损失性能
    • 如果一个优先级高的线程等待一个优先级低的线程释放锁,会导致优先级倒置,引起性能倒置问题。(比如一个想小便的人在等一个大便的人释放锁,本来小便只需要几秒,但现在却要等很久)
       

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • 这是【游戏开发那些事】的第21篇游戏技术文章目录:一. 载具同步的难点分析二. 轨迹调试工具三. 投影速度混合技术四. 基于快照缓存的外插值和/或内插值‍五. 混合物理模拟来处理碰撞六. ...
  • 有道智云翻译SDK,网易的有道智云还有一个非常重要的服务,那就是自然语言翻译服务,支持文本、语音和图片,可以实现中、日、英、韩、法、俄、葡、西、越等多种语言互译,如果你想在你开发的程序里嵌入有道智云的...
  • 同步数据流语言高阶运算消去的可信翻译 同步数据流语言(例如Lustre,Signal等)广泛应用于工业界的核心安全级控制系统,如航空、核电等高安全等级的关键领域,与语言相关的软件的安全性也越来越受到人们的关注,特别是...
  • 秉承初心,近日AdsPower又上线了账密同步和浏览器翻译两个新功能,下面大白就带大家一起了解新功能。 01 账密同步 你是否也曾有过这样的困扰? 换了新的设备后,因保存在原来设备的账密没能同步到新设备,想要在新...
  • Java中的同步

    2021-02-26 21:36:42
    Java中的同步线程间的通讯首要的方式就是对字段及其字段所引用的对象的共享访问。这种通信方式是及其高效的,但是也是导致了可能的错误:线程间相互干涉和内存一致性的问题。避免出现这两种错误的方法就是同步。线程...
  • FlinkX数据同步

    2021-01-07 18:16:31
    Flink数据同步先行者-FlinkX 最近在学习Flink,看到目前的Connector支持还较少,联想到之前的DataX与FlinkX,由感而发。 从我个人的理解上,Connector是连接各个数据源的连接器,它屏蔽了一系列的组件兼容问题,...
  • 最近,利用一些时间对oracle数据库实时同步工具做了一些调研分析,主要关注了linkedin的databus和阿里的yugong两个中间件,其中databus需要在每个待同步的表上增加额外的列和触发器来实现,方案比较重,本文将着重...
  • 展开全部线程间的通讯首要的方式就e68a...避免出现这两种错误的方法就是同步。线程间相互干扰描述了当多个线程访问共享数据时可能出现的错误。内存一致性错误描述的了共享内存可能导致的错误。同步方法(Sync...
  • 编程语言有哪些做开发的时候要做MySQL的数据库同步,两台安装一样的系统,都是FreeBSD5.4,安装了Apache 2.0.55和PHP 4.4.0,MySQL的版本是4.1.15,都是目前最新的版本。1、安装配置两台服务器,分别安装好MySQL,都...
  • 据悉,安卓10 Q系统已经出现,功能更多更强大,加入了实时字幕的翻译功能,打开视频后能够自动翻译成字幕,非常贴心好用,即使不开声音也能实时翻译,很是炫酷。 而且在Pixel系列中,有一款新机就将配备全新的安卓...
  • 异步复制MySQL复制默认是异步复制,Master将事件写入binlog,提交事务,自身并不知道slave是否接收是否处理;...半同步复制当Master上开启半同步复制功能时,至少有一个slave开启其功能。当Master向sla...
  • 以下翻译自Ubuntu官方文档。本页描述的是让你的电脑时间保持准确的方法。这对服务器是有用的,但是对桌面机器就没有必要了。NTP协议是一个为了从网络上同步时间的TCP/IP协议。简单的说,就是客户端向服务器请求当前...
  • PTP(IEEE1588),TSN时间同步方法

    千次阅读 2021-07-16 16:31:16
    本文首先简要介绍主流的时间同步方式GNSS,NTP,PTP。然后通过NTP和PTP对比,解释PTP性能更优秀的原因;并对算法公式进行了推导。
  • 一、帧同步原理: 帧同步,指的是将游戏过程中关键的操作帧数据同步给各个客户端实现游戏同步的方案。这个原理看上去一句话很简单,但是其实内部涉及的细节却很多,影响到游戏的卡顿,同步是否完全同步等问题,接...
  • 本文主要是介绍java中线程同步的几种常用方式。CountDownLatch从字面上理解,CountDownLatch是一个同步等待的锁,根据官方的注释可以看出这其实是一个同步执行工具类。先看一下官方注释的前两段/*** A ...
  • 有时候MySQL主从同步不一致比较严重的时候,需要手动同步。然而网上看大很多需要锁表的同步的方法基本如下1.先对主库锁表FLUSH TABLES WITH READ LOCK;2.备份数据mysqldump -uroot -p -hlocalhost > mysql.bak....
  • 在进行仿真任务时,我们经常会用到太阳同步轨道、地球同步轨道、闪电轨道等一系列特殊的轨道。在设计这些轨道时,参数往往都有内在相关性或一定的约束,所以轨道参数并不是随意设置。在过去博文中,设置卫星参数都很...
  • 这是【游戏开发那些事】的第43篇原创点击关注加“星标”获取更多游戏开发知识与科普文章五:物理同步 1.概念与理解 - 什么是物理同步 2.问题与解决方案 - 物理引擎...
  • 目录一、异步复位同步释放二、Xilinx复位程序对比1.将同步化后的复位当作异步复位信号2.将同步化后的复位当作同步复位信号三、仿真结果四、Altera复位 Xilinx 复位准则: (1)尽量少使用复位,特别是少用全局复位,...
  • 背景《SQL Server 2012实施与管理实战指南》中指AlwaysON同步过程如下:任何一个SQL Server里都有个叫Log Writer的线程,当任何一个SQL用户提交一个数据修改事务时,它会负责把记录本次修改的日志信息先记入一段内存...
  • java运行在jvm中,java编译器会把我们程序猿写的java代码编译成.class文件,这个.class对于jvm就是相当于汇编对于操作系统(jvm也有类似操作系统一样的指令集),当jvm运行的时候,它会把.class翻译成操作系统认识的...
  • 最近发现公司的域控制器和域内的计算机时间与internet上的时间不同步,老是慢几分钟。 解决办法: 设置NTP服务器,和外网时间同步。以下是设置步骤: 修改PDC主域控制器上同步Internet时间服务器: 1.主域控制器...
  • 同步数据流语义 在从Lustre到C的转换过程中, 经历了同步数据流语义逐步向串行命令式语义的过渡.在现阶段, Vélus的动态语义的形式化定义是从SN-Lustre中间表示开始的, 在Obc, 中间表示被变换至一种基于对象的串行...
  • The difference between the request time and the current time is too large.(有道翻译:请求时间和当前时间之间的差异太大了。)。很多人说是因为本地时区有问题,但是经过本人更改linux系统的时区,发现该问题...
  • 2020-07-04 一款英文文章阅读翻译精品工具 2020-02-16 本文分享自微信公众号 - 生信科技爱好者(bioitee)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起...
  • Java 同步

    2021-02-12 13:04:10
    同步方法: synchronized方法则会被翻译成普通的方法调用和返回指令如:invokevirtual、areturn指令,在VM字节码层面并没有任何特别的指令来实现被synchronized修饰的方法,而是在Class文件的方法表中将该方法的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 133,561
精华内容 53,424
关键字:

同步翻译