-
-
- 禁用项目的边框阴影功能(Disable-Shadow-Border)
-
- 削减边框阴影宽度(Shrink-Shadow-Border), 此优先级比1高.
-
-
- 上述功能1将原来边框的阴影设置为窗口背景色
- 上述功能2将边框宽度设置为1达到消除边框的目的,可用以禁用窗口特效中的Deepin以防止窗口四周出现黑框.
- 目前基本不支持中文,识别准确率孱弱,有时间再改进。
-
- 设置 -> 校准 -> 谷歌翻译 -> 离线翻译 -> 必应翻译 -> Pin -> 退出 ( 其中校准按钮只做调试使用 )
-
-
快捷键除了播放音频和切换翻译源显示外,其他都不允许只有一个键作为快捷键,必须带上Modifier,比如Control,Shift等,
另外如果Gnome使用了Super键作为Overview功能,带Super键的快捷键设置会无效。,更换了快捷键捕捉方式,问题已得到解决。 -
选中文本后弹出的图标延迟时间可在
Delay
中设置,弹出图标后如果没有鼠标左键点击非图标区域外事件,图标将在此设置的时间之后消失,如果弹出图标后点击左键于空白区域,图标将即刻消失 -
Icon Position
中拖动Location
图标,改变其与指针的相对位置,此设置将对应应用到实际选中文本后弹出图标相对于鼠标指针的位置, 设置后记得点击Save Change
保存设置,否则此次设置将会被丢弃。 -
Window Preferences
目前提供偏好设置有- 隐藏标题栏
- 区域外点击鼠标则关闭翻译窗口
- Ctrl+C 关闭窗口
- 允许自动调整翻译窗口位置(此选项主要针对翻译窗口在顶部或底部按照预定位置显示会遮挡选中文字时生效,比如图标位置设置为指针上方,窗口位置设置为指针上方,如果经过计算窗口位置将遮挡住选中文字,其将自动调整显示窗口到指针下方)
- 底部包含一张翻译窗口的图片,以及可移动指针。移动指针到你想要的位置,此设置将实际应用到弹出的翻译窗口相对于指针的位置,设置后记得点击
Save Change
保存设置,否则此次设置将会被丢弃。
-
- 快速查找功能 <Alt-J> 触发, Ctrl-C 或 ESC 关闭,翻译界面只支持ctrl-C关闭,窗口失焦状态ctrl-c同样适用,要关闭此功能需修改源码,后期发布详情 (修改源码可更改快捷键,详情见issue)
- 程序只支持Xorg的桌面,并且系统必须禁用Wayland。
-
先将源码克隆到本地
$ git clone https://github.com/poemdistance/ScreenTranslation --recursive
如果代码已经下载过一次并做了修改,需要同步到上游到最新状态覆盖本地的,参考: Git 下游更改后强行恢复至上游最新状态, 更新submodules至最新状态
-
cd到src目录
$ cd ScreenTranslation/src
-
安装依赖 Xlib X11 Xtst Xext gtk3开发环境(gtk.h, gtkwindow.h)
-
For system base on Debian (Ubuntu, Kali etc.)
sudo apt-get install build-essential gnome-devel libx11-dev libxtst-dev sudo apt-get install python3-pip liblzma-dev sudo apt-get install xdotool sudo apt install tesseract-ocr libtesseract-dev meson sudo pip3 install pytesseract tesseract pillow meson sudo apt install libcanberra-gtk3-0 libcanberra-gtk3-dev libcanberra-gtk3-module sudo apt install libbsd-dev #03-29新增
-
For Arch Linux
sudo pacman -S gtk3 libxtst libx11 xdotool python-pip sudo pacman -S tesseract meson sudo pip3 install pytesseract tesseract pillow meson sudo pacman -S libbsd #03-29新增 sudo pacman -S python-setproctitle #图像识别相关依赖作者安装太久了,不知道有没有漏掉什么...
-
-
终端执行命令完成项目安装
make prepare && make && make install
-
百度云速度太慢,不考虑作为上传地址,github有上传大小限制,也放弃了,选择了一个国外的云盘Mega,速度很不错,限流不限速,需要使用离线功能的童鞋可能需要先注册一个Mega账号,下载好后再往下操作。
- 解压下载文件
-
将
WordMp3
放置于家目录,dict.sql
请随意.
解压命令:tar xfv offlineTranslationResources.tar.gz
- 安装数据库
-
For Arch
sudo pacman -s mariadb
-
For Debian serias
sudo apt install mariadb-server
- 创建数据库并导入dict.sql (请在普通用户模式下执行)
-
#启动数据库 sudo mysql -u root -p #在普通用户模式下执行,然后一路回车设置空密码
-
# 出现如 MariaDB [(none)]> 画面时依次输入下面的命令(注意替换YOUR_SYSTEM_USER为自己的用户名: CREATE USER 'YOUR_SYSTEM_USER'@'localhost' IDENTIFIED BY ''; GRANT ALL PRIVILEGES ON *.* TO 'YOUR_SYSTEM_USER'@'localhost'; FLUSH PRIVILEGES; create database dict; exit; #注意如此操作后以后都必须用用户名连接数据库,想要使用其他方法适应项目的可以自己探索。
-
#终端操作命令导入数据库 mysql -h127.0.0.1 -u$USER -p dict < dict.sql #终端命令导入数据库
-
#设置Mariadb自启动 systemctl enable mariadb systemctl start mariadb
-
运行后长时间未使用软件,在第一次双击后可能会不弹出图标,或者翻译结果呈现上一次未知的复制,是因为复制操作有延时,程序获取成了上一次的复制结果
-
程序有较小几率呈现出上一次的翻译结果,原因是上一次结果获取较慢,直到在这一次中才呈现出来,打乱了步伐
-
程序有较小几率显示不完美,也跟翻译速度影响有关
-
百度或者谷歌翻译如果在翻译过程中出了问题,可能是网络原因,也可能是代码本身的Bug,由于翻译结果的不确定性,不保证已经将全部因素考虑进去,有可能翻译某些特定情况的时候使程序奔溃,重启便可。如果多次选中同一个文本都产生崩溃,那便是代码的问题。如果重启后一切恢复,便是网络问题,即有可能是网络不好,或者百度的反爬虫机制导致的。
-
如果想协助作者完善此软件,请在程序崩溃后将日志文件
/var/log/mstran.log
发送至作者github同名gmail邮箱:poemdistance@gmail.com
-
软件是有桌面图标的,安装成功并重启后按Super键,搜索Mstran即可找到,点击图标会打开或者重启翻译软件。
步骤一.
#注意这条命令自始至终只需要在项目中执行一次
git remote add upstream https://github.com/poemdistance/ScreenTranslation
步骤二.
#注意以下命令会覆盖掉本地已有的修改
git fetch upstream
git checkout master
git reset --hard upstream/master
步骤三.
git submodule foreach git pull origin master
步骤四. <编译/安装项目>
参照上面的安装步骤 2 4 5 (更新不需要重启)
-
NOTE: 电脑如果安装了wayland,需要禁用,不然终端中无法正常使用xdotool,方法如下:
- 打开/etc/gdm/custom.conf
添加如下两行(完成后需要重启)
[daemon] WaylandEnable=false
- 打开/etc/gdm/custom.conf
添加如下两行(完成后需要重启)
-
相关依赖:
- C语言库: Xlib X11 Xtst Xext gtk3开发环境
- 终端命令行工具: xdotool, ps, awk, tail
-
在某些应用中禁用取词翻译
找到
fordetectMouse.c
中的如下内容:const static char wantToIgnore[][20] = { "VirtualBox", "VirtualBoxVM", "vlc", "qemu-system-arm", "nautilus", "eog", "gimp-2.10" };
将需要忽略的应用名称添加进数组保存,重新编译项目并安装。
-
直接运行编译后生成的可执行文件mstran (软件有应用图标,名为Mstran,点击图标亦可运行)
$ mstran
这种情况会有很多输出信息,一般是拿来作为调试信息的
$ mstran > /dev/null &
放置在后台执行,重定向输出到/dev/null
停止运行:
$ bash ~/.stran/stop.sh (或终端直接执行stoptran)
- 如果运行报错failed to open mice的问题,这个是因为没有权限打开文件进行读写导致的,可以有如下解决办法:
-
方法一: 添加当前用户到/dev/input/mice的用户组中:
-
a. 先查明此文件设备所在用户组,使用命令:
$ ls -l /dev/input/mice
b. 得到结果类似如下:
crw-rw---- 1 root input 13, 63 Jul 27 09:09 /dev/input/mice
c. 其中的input即是其所在用户组,得到后使用如下命令添加用户到input用户组并重启系统:
$ sudo usermod -aG input $USER
Note: 如果设备文件没有用户组,请先手动设置规则添加,网上很多相关内容,这里不赘述.
-
-
方法二: 使用sudo执行此程序:
sudo mstran
中途测试过程中以root用户或者说sudo执行时Xdisplay发生过 No protocol specified的错误,所以此方法不一定奏效,但也可能是当时系统忘记关闭Wayland导致的。
-
- 看都看到这里了,打赏一个呗 :P
支付宝 微信