[github传送门]

功能

  • 翻译文本文件
  • 翻译.strings文件
  • 翻译.xml文件
  • 翻译 文本
  • 支持谷歌翻译
  • 支持有道翻译
  • 支持 i18ns.com 聚合翻译
  • 会自动检测当前网络情况,从而决定使用谷歌还是有道翻译(有道翻译为了防IP封锁,使用3种渠道切换,所以速度会比谷歌慢一些,如果谷歌能用,将优先使用谷歌翻译)

安装:

pip install mkTranslation

更新现有版本:pip install --upgrade mkTranslation

如果安装后,终端不能识别translate命令,参考这里

使用:

选项

-p 指定要翻译文档的路径
-t 指定要翻译的文本
-d 目标语言(缺省'en',繁体简体互译时,可以用's'替代'zh-hans',用't'替代'zh-hans',s=simple=简体,t=traditional=繁体)
-c 指定翻译渠道:[-c "google"] or [-c "youdao"] (缺省google)
-s 原始语言,有道翻译检测原始文本语言不太准确,翻译的结果会不太准确,所以使用有道翻译时,最好要指定原始的语言

翻译文档

translate -p ./chinese.txt  -d 's'                  # 文件转为简体。繁体:'t' 简体:'s'
translate -p ./ios.strings                          # 默认使用 google 翻译,默认目标语言为 'en'
translate -p ./android.xml -d 'pt'                  # 默认使用 google 翻译,目标语言为葡萄牙语
translate -p ./test.txt -d 'pt' -c 'youdao' -s 'ja' # 使用有道翻译,目标语言为日语
自动在原始文件目录生成翻译后的文件  translate_pt_android.xml translate_en_ios.strings translate_ja_test.txt

翻译文本

繁体简体互译

$ translate -t '1932年中華民國教育部公佈《國音常用字匯》' -d 'zh-hans'
1932年中华民国教育部公布《国音常用字汇》
$ translate -t '1932年中华民国教育部公布《国音常用字汇》' -d 'zh-hant'
1932年中華民國教育部公佈《國音常用字彙》$ translate -t '1932年中华民国教育部公布《国音常用字汇》' -d t
1932年中華民國教育部公佈《國音常用字彙》
$ translate -t '1932年中華民國教育部公佈《國音常用字匯》' -d s
1932年中华民国教育部公布《国音常用字汇》
$translate -t 'Facebook發幣,是偉大征途還是飛蛾撲火?'  # 默认使用谷歌翻译(目标语言是葡萄牙语)
[Use google translation]
Facebook currency, is it a great journey or a moth?$translate -t 'Facebook发币,是伟大征途还是飞蛾扑火?' -d 'ja' -s 'zh' -c 'youdao' # 使用有道翻译(目标语言是日语)
[Use youdao translation]
[オピニオン]フェイスブックのボーナス、偉大な征途か、蛾の灯か。?

Demo

translate -p ./ios.strings -d 'pt'

from ./ios.strings

common_tips_error = "错误";
common_btn_sdk_pin_error = "PIN码输入错误,请检查输入!"; /**"PIN码输入错误,请检查输入!"*/
/** ********************************************   */
gw_input_title_signtx_usdt = "支付USDT手续费:%ld/%@"; /**"支付USDT手续费:%ld/%@"*/

to ./translate_pt_by_google_ios.strings

common_tips_error = "Erro";
common_btn_sdk_pin_error = "O código PIN é inserido incorretamente, por favor, verifique a entrada!"; /**"PIN码输入错误,请检查输入!"*/
/** ********************************************   */
gw_input_title_signtx_usdt = "Pagar taxa de manuseio do USDT:%ld/%@"; /**"支付USDT手续费:%ld/%@"*/

translate -p ./android.xml

from ./android.xml

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"><!-- tab --><string name="network_error">网络不可用,点击屏幕重试</string><string name="scan_qr_code_warn">将二维码放入框内,即可自动扫描</string><string name="album_text">相册</string>
</resources>

to ./translate_en_by_google_android.xml

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"><!-- tab --><string name="network_error">Network is not available, click screen to try again</string><string name="scan_qr_code_warn">Put the QR code into the box and you can scan it automatically.</string><string name="album_text">Album</string>
</resources>

支持的文件和语种:

  • 支持 txt、iOS(.strings) 和 Android(.xml) 的配置文件

  • 支持翻译的语言

支持如下任意两个语种互译

'af': 'afrikaans',
'sq': 'albanian',
'am': 'amharic',
'ar': 'arabic',
'hy': 'armenian',
'az': 'azerbaijani',
'eu': 'basque',
'be': 'belarusian',
'bn': 'bengali',
'bs': 'bosnian',
'bg': 'bulgarian',
'ca': 'catalan',
'ceb': 'cebuano',
'ny': 'chichewa',
'zh-cn': 'chinese (simplified)',
'zh-tw': 'chinese (traditional)',
'co': 'corsican',
'hr': 'croatian',
'cs': 'czech',
'da': 'danish',
'nl': 'dutch',
'en': 'english',
'eo': 'esperanto',
'et': 'estonian',
'tl': 'filipino',
'fi': 'finnish',
'fr': 'french',
'fy': 'frisian',
'gl': 'galician',
'ka': 'georgian',
'de': 'german',
'el': 'greek',
'gu': 'gujarati',
'ht': 'haitian creole',
'ha': 'hausa',
'haw': 'hawaiian',
'iw': 'hebrew',
'hi': 'hindi',
'hmn': 'hmong',
'hu': 'hungarian',
'is': 'icelandic',
'ig': 'igbo',
'id': 'indonesian',
'ga': 'irish',
'it': 'italian',
'ja': 'japanese',
'jw': 'javanese',
'kn': 'kannada',
'kk': 'kazakh',
'km': 'khmer',
'ko': 'korean',
'ku': 'kurdish (kurmanji)',
'ky': 'kyrgyz',
'lo': 'lao',
'la': 'latin',
'lv': 'latvian',
'lt': 'lithuanian',
'lb': 'luxembourgish',
'mk': 'macedonian',
'mg': 'malagasy',
'ms': 'malay',
'ml': 'malayalam',
'mt': 'maltese',
'mi': 'maori',
'mr': 'marathi',
'mn': 'mongolian',
'my': 'myanmar (burmese)',
'ne': 'nepali',
'no': 'norwegian',
'ps': 'pashto',
'fa': 'persian',
'pl': 'polish',
'pt': 'portuguese',
'pa': 'punjabi',
'ro': 'romanian',
'ru': 'russian',
'sm': 'samoan',
'gd': 'scots gaelic',
'sr': 'serbian',
'st': 'sesotho',
'sn': 'shona',
'sd': 'sindhi',
'si': 'sinhala',
'sk': 'slovak',
'sl': 'slovenian',
'so': 'somali',
'es': 'spanish',
'su': 'sundanese',
'sw': 'swahili',
'sv': 'swedish',
'tg': 'tajik',
'ta': 'tamil',
'te': 'telugu',
'th': 'thai',
'tr': 'turkish',
'uk': 'ukrainian',
'ur': 'urdu',
'uz': 'uzbek',
'vi': 'vietnamese',
'cy': 'welsh',
'xh': 'xhosa',
'yi': 'yiddish',
'yo': 'yoruba',
'zu': 'zulu',
'fil': 'Filipino',
'he': 'Hebrew'

版本

  • V1.5.0 增加中文简体和中文繁体的互译
  • V1.4.0 增加网络检测,自动切换谷歌或有道翻译
  • V1.2.3 增加快速翻译 $translate 'mkTranslate 支持多种语言的互译'
  • V1.2.0 增加有道翻译, 有道会对ip封锁,所以使用了3种翻译通道,其中api翻译是不得已才会调用的,因为api 接口仅支持中英互译。暂未注册apikey,目前使用的apikey源于:api key。虽然有三种翻译通道,但是还可能翻译不出来,还需要优化。
  • V1.1.3 增加命令行直接翻译文本

其他:

修复:

目前已经添加了一些简单的修复工作:

针对 "user_notify_type_word_input_index" = "第 %ld/%@ 个单词"; 这种词条,谷歌翻译葡萄牙后 % ld /% @ palavras, 脚本会自动删减空格:"user_notify_type_word_input_index" = "%ld/%@ palavras";

欢迎关注:

微博:3行代码

公众号:3code

python实现:命令行翻译.string 和 .xml 文件 -- mkTranslate:支持多种语言的互译相关推荐

  1. python程序命令行输出记录到log文件中

    $ python xxx.py args1 >> data/log.txt第一条命令的含义是:将xxx.py这个python文件中print()原本输出到console的内容重定向到&qu ...

  2. Python 打造基于有道翻译的命令行翻译工具(命令行爱好者必备)

    Python 打造基于有道翻译的命令行翻译工具(命令行爱好者必备) 之前基于百度写了一篇博文 Python 打造基于百度翻译的命令行翻译工具,本来这工具用得挺好的.但是没想到,近期处于不知道啥原因,不 ...

  3. Python 打造基于百度翻译的命令行翻译工具

    Python 打造基于百度翻译的命令行翻译工具 由于英文水平一般,所以还是非常依赖翻译工具的.fanyi.baidu.com 都成了我浏览器必开的网页之一了.昨天项目上线,等待过程中,无聊写了一个基于 ...

  4. python工具是什么-使用Python编写命令行工具有什么好的库?

    使用Python编写命令行工具的库很多,我最推荐的还是Google Fire Hello World 要介绍Fire是什么,看一个简单的例子就明白了 # calc.py import fire cla ...

  5. python脚本实例手机端-python链接手机用Python实现命令行闹钟脚本实例

    前言: 这篇文章给大家介绍了怎样用python创建一个简单的报警,它可以运行在命令行终端,它需要分钟做为命令行参数,在这个分钟后会打印"wake-up"消息,并响铃报警,你可以用0 ...

  6. python终端指令大全_使用python模拟命令行终端的示例

    可以对?显示帮助信息,需要立即获取输入的字符,因此需要用到termios模块 另外需要对tab键做处理,当按下tab键时可以进行自动补全 #! /usr/bin/env python # coding ...

  7. python:命令行与环境

    python:命令行与环境 1.1. 命令行 1.1.1. 接口选项 1.1.2. 通用选项 1.1.3. 其他选项 1.1.4. 不应当使用的选项 1.2. 环境变量 1.2.1. 调试模式变量 C ...

  8. python 命令-新手向——用python编写命令行应用的简洁方式

    我们有一些方法可以做出Python的命令行式app.我试过它们,不过它们大都有自己的痛点和烦恼.所以我到社区里去寻找一种更好的方法. 什么是CLI? CLI 意味着命令行界面(command line ...

  9. python 命令-python解析命令行参数的三种方法详解

    这篇文章主要介绍了python解析命令行参数的三种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python解析命令行参数主要有三种方法: ...

最新文章

  1. Windows Forms高级界面组件-使用状态栏控件
  2. Dynamips和Vmware完成CCVP试验(1)
  3. 我的WAF Bypass实战系列
  4. Vue中ESlint配置文件eslintrc.js文件详解
  5. [SCOI2016]萌萌哒
  6. git配置ssh私钥_GitLab 配置
  7. [转]浅谈封装中的非技术细节 - 含减肥攻略
  8. Tomcat 修改网站旁边的小图标
  9. 密码攻防系列文章27-web后台登录口令暴力破解及防御
  10. 虚拟机超线程性能分析深入浅出
  11. 安全测试(BurpSuite)常见检查点
  12. c语言中swipe的作用,浅谈在vue中使用mint-ui swipe遇到的问题
  13. ubuntu系统安装好搜狗输入法后只能输入英文,无法输入中文的解决方案
  14. 【Unity】角色动画控制
  15. gcc与cuda的关系
  16. CPU与RISC-V ISA架构
  17. 前长江基金董事长王含冰被开除党籍和公职 涉嫌职务犯罪
  18. 为什么大部分人的职场,总是越努力越绝望?
  19. 国仁网络资讯:抖音被降权、限流、警告了怎么办;触碰了抖音哪些违规行为。
  20. 打开PS是出现“该内存不能为read”是怎么回事?

热门文章

  1. Httpie 工具入门使用
  2. 获取服务器微信头像更改不同规格图片大小
  3. oracle的opm,Oracle EBS OPM 事务处理
  4. Python||datetime.timedelta()详解,核心是minutes与minute
  5. Cynthia - XSS vulnerability exists in the newly created TAG
  6. linux上面跑lvgl GUI简单实例
  7. 记第一次实习面试经历(字节跳动)
  8. Git - 如何checkout一个tag
  9. vsftpd2.3.4笑脸漏洞
  10. 五十四、HBase的协处理器