Crates.io | bilingual |
lib.rs | bilingual |
version | 0.1.3 |
source | src |
created_at | 2021-11-20 15:32:35.135893 |
updated_at | 2023-02-02 08:33:59.503301 |
description | A cmdline tool used for markdown translation via calling Chinese translation api cloud services. |
homepage | |
repository | https://github.com/zjp-CN/bilingual |
max_upload_size | |
id | 484967 |
size | 100,109 |
针对 markdown 文件的命令行翻译 —— 使用翻译云服务(百度、腾讯、小牛)。
该工具的目的:翻译 md 文件。和网页翻译一样,md 文件也包含很多样式(tag)。
此外:
translation-api-cn:定义翻译的网络(请求和接收)接口结构体。
bilingual:根据字节/字符上限抽取 (extract) md 文本。
不足:
下载 已编译的版本;
或者 cargo 安装:
CARGO_PROFILE_RELEASE_LTO=yes CARGO_PROFILE_RELEASE_OPT_LEVEL=3 cargo install bilingual --features bin
或者源码编译最新版本:
git clone https://github.com/zjp-CN/bilingual.git
cd bilingual
cargo build --release --features bin
bilingual.toml
样例:
[baidu]
appid = "xxxxxxxxxxxxxxxxx"
key = "xxxxxxxxxxxxxxxxxxxx"
# limit = { bytes = 6000 }
[tencent]
id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# limit = { chars = 2000 }
[niutrans]
key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# limit = { chars = 5000 }
命令行帮助:
Usage: bilingual [<multiquery...>] -a <api> [-i <id>] [-k <key>] [-f <from>] [-t <to>] [-q <singlequery>] [-m <input-files...>] [-d <input-dirs...>] [-M <output-files...>] [-D <output-dirs...>] [-r] [--forbid-dir-creation] [--toml <toml>]
【bilingual】 作者:苦瓜小仔
针对 markdown 文件的命令行翻译。使用 `bilingual --help` 查看此帮助说明。
例子:
* `bilingual -a baidu multi queries -q single-query`
* `bilingual -a tencent -m xx.md`
* `bilingual -a niutrans -d ./dir-path`
* `bilingual -a tencent \#\ 标题 正文:模拟\ markdown\ 文件的内容。 -f zh -t en`
* `bilingual -a tencent -m xx.md -M xx-中文.md -d path -D path-中文`
* `bilingual -a tencent -m a.md -M a.md -m b.md -M b.md -d assets -D assets -d test -D test -r`
这个命令表明:将 a.md、b.md 文件以及 assets 目录、test 目录下的 md 文件的翻译结果直接替换掉源文件。
注意:本程序使用翻译云服务,因此需要自行申请翻译 API。命令行提供的 id 和 key 会覆盖掉配置文件的信息。
支持从环境变量或者配置文件 `bilingual.toml` 中获取信息,见 https://github.com/zjp-CN/bilingual/issues/27
Options:
-a, --api 翻译 API。必选参数。目前支持:baidu | tencent | niutrans。
-i, --id 翻译 API 账户的 id。
-k, --key 翻译 API 账户的 key。
-f, --from 原语言。默认为 en。
-t, --to 目标语言。默认为 zh。
-q, --singlequery 单行翻译文本:翻译文本内特殊符号以 `\` 转义。翻译的顺序位于所有多行翻译文本之后。
-m, --input-files md 文件的输入路径。此工具把读取到的文件内容只当作 md 文件进行处理。且不修改 API 返回的任何内容。可多次指定。
-d, --input-dirs 输入目录。此工具只识别和读取目录下以 `.md` 结尾的文件。可多次指定。
-M, --output-files
md 文件的输出路径。默认在输入的文件路径下,但是翻译后的文件名会增加 `--to` 标识。可多次指定。
-D, --output-dirs 输出目录。默认在输入的目录旁,但是翻译后的目录会增加 `--to` 标识。可多次指定。
-r, --replace-files
如果输出文件已存在,是否替换。默认不替换。
--forbid-dir-creation
在输出文件夹时不存在时,禁止创建输出文件夹。默认总是创建新文件夹。
--toml 配置文件 bilingual.toml 的路径。默认为 `./bilingual.toml` 或者
`~/.config/bilingual.toml`。
--help display usage information
实际使用例子:
bilingual -a tencent "# 标题" "正文:模拟 markdown 文件的内容。" -f zh -t en
(等价于使用 \
转义的例子)结果:
# 标题
# Title
正文:模拟 markdown 文件的内容。
Body: simulates the contents of the markdown file.
8_6_io_eventqueue-zh.md:源文件来自于此处
markdown-it 的 各种 API 翻译后的版本:源文件来自于此处
日志控制见:#29