語言與多語系
Zensical 的模板已經有超過 60 種語言的翻譯,可以輕鬆建立用你母語呈現介面的文件網站,例如搜尋框、目錄標題、按鈕提示等。
設定網站語言
只能設定單一語言
HTML5 每份文件只允許一個語言,所以 Zensical 只支援替整個專案設定一個主要語言。
中文相關的語言代碼如下(都是 Complete,翻譯完整):
| 語言 | 代碼 |
|---|---|
| 中文(台灣) | zh-TW |
| 中文(繁體) | zh-Hant |
| 中文(簡體) | zh |
| 英文(預設) | en |
| 日文 | ja |
| 韓文 | ko |
完整的語言清單與翻譯完成度,請見官方文件。
搜尋介面暫時只有英文
搜尋介面是全新實作,目前還沒有多語系。但搜尋語言仍然會依 theme.language 決定,見 搜尋。
語言選擇器
如果同一份文件有多個語言版本,可以在頁首加上語言選擇器。每個語言需要三個屬性:
[[project.extra.alternate]]
name = "繁體中文"
link = "/zh/"
lang = "zh-TW"
[[project.extra.alternate]]
name = "English"
link = "/en/"
lang = "en"
| 屬性 | 說明 |
|---|---|
name |
顯示在選擇器裡的語言名稱,不可為空字串 |
link |
絕對連結,可以指向其他網域(不一定是 Zensical 建立的網站)。沒有網域的話,會自動加上 site_url 的網域 |
lang |
ISO 639-1 語言代碼,用於連結的 hreflang 屬性,有助搜尋引擎辨識 |
文字方向
大多數語言是由左到右(ltr),Zensical 也支援由右到左(rtl)。預設會依語言自動判斷,也可以手動指定:
自訂翻譯
想修改某個語言裡的部分字串,先啟用 custom_dir(見 網站客製化),在 overrides/partials/languages/ 建立新的檔案,例如 custom.html:
overrides/partials/languages/custom.html
<!-- 匯入目標語言與備用語言的翻譯 -->
{% import "partials/languages/zh-TW.html" as language %}
{% import "partials/languages/en.html" as fallback %}
<!-- 定義要覆寫的翻譯 -->
{% macro override(key) %}{{ {
"source.file.date.created": "建立於",
"source.file.date.updated": "更新於"
}[key] }}{% endmacro %}
<!-- 重新匯出 -->
{% macro t(key) %}{{
override(key) or language.t(key) or fallback.t(key)
}}{% endmacro %}
然後把語言設成這個自訂檔案:
en 一定要當備用語言
en 是主題的預設語言,必須永遠當作最後的備用,否則沒有翻譯的字串會出錯。
總結
| 想做的事 | 設定 |
|---|---|
| 設定介面語言 | theme.language = "zh-TW" |
| 語言選擇器 | [[project.extra.alternate]] |
| 文字方向 | theme.direction |
| 覆寫部分翻譯 | overrides/partials/languages/custom.html |