加一種語言
OpenCLI 內置十種翻譯:English、簡體中文、繁體中文、日本語、한국어、Español、 Português (Brasil)、Français、Deutsch、Русский。
別的語言就是一個文件 —— 而修正上面某一種裡的一句話,也是一個文件。
在介面裡
Customize → Language → Add a language file… 收下一個 .json 文件並留著它。
它立刻出現在選擇器裡。
手動
同一個文件,放進 ~/.opencli/locales,用語言命名:
~/.opencli/locales/nl.json
兩條路寫的是同一個地方,所以在介面裡加進來的東西,之後可以手動改,也可以拷到 另一臺機器上。
裡面是什麼
每一條的左邊,是介面裡原樣出現的那句英文;右邊是要顯示的東西:
{
"name": "Nederlands",
"strings": {
"Dispatch": "Verzenden",
"Scheduled tasks": "Geplande taken",
"Runs ({count})": "Uitvoeringen ({count})"
}
}
name 是語言選擇器裡顯示的名字。不寫就用文件名。光一個映射表也行,不要外面那層:
{ "Dispatch": "Verzenden" }
從內置的那一份開始
內置的翻譯就是同一種文件,在
web/src/locales/。
拷一份,把每行右邊換掉,你手裡就是一個完整的起點,而不是一張要自己去找的句子清單。
想看介面用到的每一句:
python3 scripts/i18n-check.py
佔位符
句子裡的 {name} 會被填進去。保留同樣的佔位符,順序隨你的語言怎麼順——
能重排,本來就是它們存在的大半理由:
{ "Allowed {count} of {total}": "{total} 中允許了 {count} 個" }
復數
plural() 在兩個形式之間選。英語、德語、西班牙語、法語、葡萄牙語夠用;
它沒有俄語在 2–4 時要的第三種形式。一種語言需要多於兩個形式時,
把句子寫成讓數字自己說話 —— 寫 запусков: {count},而不是一個必須跟它保持一致的名詞。
中文、日文、韓文用單數形式,讓數字去幹活,這一步已經替你處理好了。
修正一句內置翻譯
用一個已經內置的語言命名的文件,是合併進去,不是替換掉它。 想改一句,就寫一條:
{ "Dispatch": "派活兒" }
其餘的照舊用內置的措辭。
什麼時候生效
從介面加的文件立刻生效。手動放進目錄的,在視窗連上來的時候讀,所以要重開視窗。 解析不了的文件會被跳過,網關日志裡留一行 —— 其他語言不受影響。
沒翻的句子
沒有對應條目的句子顯示英文,所以一份翻了一半的翻譯讀起來是夾雜,而不是一屏空白。 不需要翻完才有用。
從右往左
阿拉伯語、希伯來語、波斯語不在內置之列,而把其中一種作為文件加進來,頁面仍然會從左往右排。
介面還沒有 dir="rtl" 的處理;那是改樣式表的事,不是改翻譯文件。