4.5 国际化

如果你的书籍的语言不是英语,那么可能需要将某些英语单词和短语翻译成你使用的语言,例如在 HTML 输出中自动编号数字/表格时的单词“Figure”和“Table”。国际化可能不是 LaTeX 输出的问题,因为一些 LaTeX 软件包可以自动将这些术语翻译成本地语言,例如 ctexcap 中文软件包。

对于非 LaTeX 输出,你可以在配置文件 _bookdown.yml 中设置 language 字段。目前默认的设置为:

language:
  label:
    fig: 'Figure '
    tab: 'Table '
    eq: 'Equation '
    thm: 'Theorem '
    lem: 'Lemma '
    cor: 'Corollary '
    prp: 'Proposition '
    cnj: 'Conjecture '
    def: 'Definition '
    exm: 'Example '
    exr: 'Exercise '
    hyp: 'Hypothesis '
    proof: 'Proof. '
    remark: 'Remark. '
    solution: 'Solution. '
  ui:
    edit: Edit
    chapter_name: ''
    appendix_name: ''

例如,如果你想要将使用 FIGURE x.x 而不是 Figure x.x,你可以将 fig 更改为 "FIGURE "

language:
  label:
    fig: "FIGURE "

ui 下的字段用于指定用户界面中的某些术语。edit 字段指定在 _bookdown.yml(第 4.4 节)中提到的 edit 链接相关联的文本。chapter_nameappendix_namefigtabeq 字段可以是要在篇章或引用编号前加入的字符串(例如 CHAPTERFIGURE),也可以是一个以接受数字(篇章或引用编号)输入并返回一个字符串的 R 函数(例如 !expr function(i) paste('Chapter', i))。以下是匈牙利语的一个例子:

language:
  label:
    fig: !expr function(i) paste(i, 'ábra')
  ui:
    chapter_name: !expr function(i) paste0(i, '. fejezet')

仅仅对于 chapter_nameappendix_name,如果它是长度为 2 的字符向量,则章节标题前缀将为 paste0(chapter_name[1], i, chapter_name[2]),其中 i 是章节编号。

当你使用使用多字节字符(如中文、日文和韩文 (CJK))的语言编写时会有一个警告:Pandoc 无法从纯 CJK 字符的章节标题中生成标识符,因此你将无法交叉引用章节(它们没有标签),除非你通过将 {#identifier} 附加到章节标题来手动为其分配标识符,其中 identifier 是你选择的标识符。