#markdown #translation #common-mark #localization

mdtranslation

多语言 Markdown 文档准备工具

3 个版本

0.1.2 2021年6月6日
0.1.1 2021年6月6日
0.1.0 2021年6月3日

#888 in 文本处理

每月 36 次下载
2 crates 中使用

MIT/Apache

125KB
3K SLoC

mdTranslation

mdTranslation 是一个用于准备多语言 Markdown 文档的工具。

还有一个名为 mdbook-translation 的 mdBook 预处理器,用于处理 mdBook 书籍。

它是如何实现的呢?

这是通过将源内容和它们的翻译关联在一起来实现的。这种关联以特定简单格式中的单独 Markdown 文档的形式表达。

这个文件看起来像这样

> Original content 1

* lang_ID1
Translated content written in lang_ID1
* lang_ID2
Translated content written in lang_ID2
****
...

这个库可以读取并比较每个叶子节点(段落、列表项等)内的 Markdown 内容与这里的所有原始内容,如果匹配,它将用相应的翻译内容替换它。这使得在不接触原始文档的情况下进行翻译成为可能。

mdTranslation 命令行工具

要使用 CLI 工具,只需在终端中输入以下内容

cargo install mdtranslation-cli

这允许您使用两个命令

  1. mdtranslation_extract

此工具帮助您将原始内容和初始模板提取到 Markdown 文件中。

例如,如果您想为 a.md 提供法语翻译,您可以执行此操作

mdtranslation_extract -l fr_FR a.md >> a.i18n.md

这里的 >> 允许新生成的内容附加到文件的末尾。您可以使用此方法收集书籍中的所有段落。

  1. mdtranslation_translate

此工具帮助您为 Markdown 文件生成翻译和渲染的 HTML 文件。

例如,如果您想为 a.md 提供法语翻译,并且您已经准备好了位于 a.i18n.md 的翻译文件,您可以执行此操作

mdtranslation_translate -l fr_FR -t a.i18n.md a.md > a.htm

如果您没有在 a.i18n.md 中指定语言,您可以在此处传递额外的 -d fr_FR 参数,告诉程序该语言实际上是 fr_FR。这对于单语言翻译情况很有用,尽管我们鼓励您始终为每个段落指定实际语言。

mdBook-translation 预处理器

还有一个 mdBook 预处理器,允许您与 mdBook 一起使用 mdTranslation。

  • 要安装 mdBook 预处理器,只需在终端中输入以下内容
cargo install mdbook-translation
  • 之后,您可以通过在 book.toml 中添加以下内容为特定书籍启用此预处理器。
[preprocessor.translation]
  • 现在,在您像往常一样运行 mdbook build 之前,您可以设置环境变量,让预处理器以特定语言生成书籍。

如果您正在使用 Windows cmd.exe,则需要这样做。

set MDTRANSLATION_INPUT=book.i18n.md
set MDTRANSLATION_LANG=fr_FR
set MDTRANSLATION_DEFAULT_LANG=fr_FR

或者如果您使用的是 *nix shell。

export MDTRANSLATION_INPUT=book.i18n.md
export MDTRANSLATION_LANG=fr_FR
export MDTRANSLATION_DEFAULT_LANG=fr_FR

书籍的内容将被翻译内容所替换。

依赖项

~1.5MB
~24K SLoC