多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

HTMLBook 多语言出版实战:80+ 语言本地化配置从零开始

HTMLBook 多语言出版实战:80+ 语言本地化配置从零开始 HTMLBook 多语言出版实战80 语言本地化配置从零开始【免费下载链接】HTMLBookLets write books in HTML!项目地址: https://gitcode.com/gh_mirrors/ht/HTMLBookHTMLBook 是一个用 HTML 写书的开放出版标准基于 XHTML5 精简而来让你用最熟悉的网页标记语言完成从写作、校验到 EPUB、PDF 多格式出版的全流程。而最让人惊喜的是它的多语言出版能力项目内置 80 语言的本地化文件目录、章节标题、图表编号、提示框等出版元素会自动翻译成目标语言。本文就从零开始带你一步步完成 HTMLBook 本地化配置让一本书轻松走向全球读者。HTMLBook 是什么用 HTML 写书的出版利器HTMLBook 的核心理念只有一句话Lets write books in HTML!它把所有 HTML5 元素按书的语义重新组织——章节、前言、附录、索引、交叉引用、代码清单、侧栏、警告框全部用你熟悉的section、nav、figure等标签表达。这意味着什么写作门槛极低、单一数据源、输出格式丰富。同一个 HTML 源文件既能生成网页版也能通过配套样式表输出 EPUB、Mobi、PDF。详细规范见 specification.html入门样张可以直接参考 samples/htmlbook.html。80 语言本地化文件藏在哪这是多语言出版的基石。HTMLBook 内置了一整套从 DocBook XSL 项目同步来的语言包存放在项目的htmlbook-xsl/localizations/目录下共 74 个 XML 文件覆盖 80 多种语言与方言含简体中文、繁体中文、巴西葡萄牙语、拉丁塞尔维亚语等方言变体。语言文件语言文件简体中文zh_cn.xml日语ja.xml繁体中文zh_tw.xml韩语ko.xml英语en.xml法语fr.xml德语de.xml西班牙语es.xml俄语ru.xml阿拉伯语ar.xml每个文件长这样一系列gentext键值对把ChapterFigureTable of Contents等出版术语翻译成对应语言。以 zh_cn.xml 为例Chapter被映射为章TableofContents被映射为目录Warning被映射为警告。本地化配置核心原理book-language 怎么选HTMLBook 的本地化机制非常聪明——无需任何命令行参数语言自动识别。核心逻辑写在 param.xsl 中引擎会先检查源文件html或body元素上的lang属性读到合法的语言代码如zh_cn、fr就去localizations/目录加载对应的 XML 语言包找不到对应文件或未声明lang时自动回退到英文en.xml。也就是说你只需要在 HTML 源文件的根元素上写一行langzh_cn整本书的目录、章节标签、图表标题、警告框文字就会全部变成中文。语言匹配与取值逻辑位于 common.xsl 的get-localization-value模板中。这张图来自 HTMLBook 样张 samples/htmlbook.html展示了一本书内嵌图片的标准写法——figure标签配合data-type语义多语言出版时同样能被正确编号和引用。从零开始一键切换语言的实战步骤准备好仓库后git clone https://gitcode.com/gh_mirrors/ht/HTMLBook按下面 4 步就能完成多语言配置。第一步在根元素声明语言打开你的书稿 HTML在html标签上添加lang属性html xmlnshttp://www.w3.org/1999/xhtml langzh_cn第二步确认语言包存在检查htmlbook-xsl/localizations/下是否有对应文件。中文用zh_cn.xml日语用ja.xml绝大多数主流语言都已内置。第三步运行转换用项目自带的 XSL 样式表如htmlbook-xsl/htmlbook.xsl处理你的书稿目录、标签、标题编号会自动采用目标语言。第四步验证输出转换后检查生成文档的html lang属性是否正确。项目还提供了自动化测试例如 lang-declarations-htmlbook.xspec专门验证不同lang声明场景下的输出结果。语言代码速查表别再写错 lang 属性本地化文件命名遵循 IETF 语言标签惯例写错代码会静默回退到英文务必对照下表目标语言lang 值目标语言lang 值简体中文zh_cn英语en繁体中文zh_tw德语de法语fr西班牙语es日语ja韩语ko俄语ru葡萄牙语pt意大利语it荷兰语nl注意方言写法巴西葡萄牙语是pt_br拉丁塞尔维亚语是sr_Latn孟加拉语印度变体是bn_in——全部使用下划线连接而不是连字符。语言包不够用怎么办自定义本地化内置 80 语言覆盖了绝大多数场景但如果你的读者使用小语种比如低地德语nds、世界语eo、拉丁语la这些其实也内置了或者你想调整某些术语的译法完全可以自定义复制一个现有语言包比如en.xml改名为你的语言代码修改l:l10n根元素的language和english-language-name属性逐条改写gentext的text值把文件放回htmlbook-xsl/localizations/目录即可生效。想控制语言包加载路径还可以通过localizations-dir参数指定自定义目录默认值就是localizations/见 param.xsl。多语言出版常见问题排错Q1明明写了 lang输出却还是英文先检查lang值是否与文件名完全一致大小写敏感再确认语言包文件是否存在于localizations/目录最后确认lang写在了html或body上——写在其他元素上不会被识别。Q2转换后lang属性丢失了新版 htmlbook.xsl 会自动在输出文档的html上补充lang与xml:lang属性若你的版本较旧可手动补写。Q3能否一本书同时出多种语言完全可以。同一份内容维护多个语言版本每个版本声明各自的lang分别转换即可样式与结构完全复用。总结从写作到全球发行的最短路径HTMLBook 把用 HTML 写书和多语言出版这两件事做到了极致简单不需要额外配置工具链不需要逐字翻译界面文字只要声明lang属性80 语言的本地化能力即刻生效。无论你想出版中文技术手册、英文专著还是多语种电子书HTMLBook 都是一条从写作到全球发行的高效路径。现在就克隆仓库动手写你的第一本多语言书籍吧【免费下载链接】HTMLBookLets write books in HTML!项目地址: https://gitcode.com/gh_mirrors/ht/HTMLBook创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表