Rust国际化插件mdbook-i18n-helpers的使用,为mdbook文档提供多语言翻译和本地化支持
Rust国际化插件mdbook-i18n-helpers的使用,为mdbook文档提供多语言翻译和本地化支持
安装
运行以下命令安装插件:
cargo install mdbook-i18n-helpers
配置
可以在book.toml
文件中自定义插件配置:
mdbook-xgettext
配置项
output.xgettext.pot-file
(必填):设置POT文件路径,典型值是messages.pot
output.xgettext.granularity
(默认值:1
):设置行号舍入粒度,设为0
可完全移除PO文件中的行号
完整使用示例
- 首先安装插件:
cargo install mdbook-i18n-helpers
- 在mdbook项目中创建
book.toml
配置文件:
[book]
title = "多语言文档示例"
authors = ["作者名"]
[output.xgettext]
pot-file = "messages.pot" # 指定POT文件路径
granularity = 1 # 行号舍入粒度
- 提取可翻译文本:
mdbook build
mdbook-xgettext
- 创建翻译文件(例如中文翻译):
msginit -i messages.pot -o zh_CN.po -l zh_CN
- 编辑翻译文件
zh_CN.po
:
msgid "Hello, World!"
msgstr "你好,世界!"
- 生成翻译后的文档:
mdbook-gettext -p zh_CN.po
mdbook build
功能说明
这些插件使得将用mdbook
编写的文档翻译成多种语言变得容易。翻译支持是mdbook
长期以来的功能需求。
插件包含三个主要工具:
mdbook-xgettext
:从markdown文件中提取可翻译文本mdbook-gettext
:将翻译应用到文档mdbook-i18n-normalize
:规范化翻译文件
注意事项
- 这是一个非官方支持的Google产品
- 如需帮助,可以联系Martin Geisler或在GitHub上发起讨论
完整示例demo
以下是一个完整的mdbook多语言文档项目示例:
- 创建项目目录结构:
my-book/
├── book.toml
├── src/
│ ├── SUMMARY.md
│ └── chapter_1.md
book.toml
配置文件内容:
[book]
title = "Rust多语言文档"
authors = ["Rust开发者"]
[output.xgettext]
pot-file = "messages.pot"
granularity = 1
src/SUMMARY.md
内容:
目录
4. `src/chapter_1.md` 内容:
# 第一章
欢迎阅读Rust文档!
这里有一些需要翻译的内容:
- Rust是一种系统编程语言
- 它注重安全性和性能
- 提取翻译文本:
mdbook build
mdbook-xgettext
- 创建中文翻译文件:
msginit -i messages.pot -o zh_CN.po -l zh_CN
- 编辑
zh_CN.po
文件:
msgid "Welcome to Rust documentation!"
msgstr "欢迎阅读Rust文档!"
msgid "Rust is a systems programming language"
msgstr "Rust是一种系统编程语言"
msgid "It focuses on safety and performance"
msgstr "它注重安全性和性能"
- 生成中文文档:
mdbook-gettext -p zh_CN.po
mdbook build
最终会在book
目录下生成翻译后的中文HTML文档。
1 回复