Ren’Py自身也能實現多語言支持。一個完整的多語言支持版本翻譯了GUI、各種Ren’Py訊息、新工程和啟動器的文本,涵蓋了絕大多數遊戲運行和開發場景。到目前為止,有部分報錯訊息還不支持多語言。
創建一種新的語言支持包含下列步驟:
需要更新某個翻譯文件時也使用相同的流程。需要接入創建的翻譯文件的話,返回到設置頁面,在“語言”標籤下選擇剛才新建的語言。需要注意的是,默認情況下新建的翻譯文件只是複製了一份英語的版本。
翻譯文件存在於 launcher/game/tl/language/目錄。除了script.rpy,所有文件都可以包含使用 字串多語言支持 語法的字串。 有些字串的開頭可能是“## ”。這些是option.rpy和gui.rpy文件中的注釋。
翻譯文件包括:
Ren’Py自帶的默認字體(DejaVuSans)涵蓋了大多數的西方語言,不過經常會需要用到其他字體。編輯launcher/game/tl/language/style.rpy文件可以配置字體,比如添加字體:
init python:
translate_font("language", "myfont.ttf")
“language”是需要使用的語言類型(例如,“japannese”),“myfont.ttf”是使用的字體(例如,“MTLc3m.ttf”)。字體檔案應該放在launcher/game/tl/language目錄,這樣就可以被啟動器找到。
啟動器使用的樣式可以配置,方法是在一個translate python語句塊中設置一些變數。具體的變數名如下。變數名比較容易混淆,影響英語版本。
這些變數僅對啟動器有效。
gui.LIGHT_FONT
= “Roboto-Light.ttf” link啟動器中通用文本使用字體的路徑。
gui.REGULAR_FONT
= “Roboto-Regular.ttf” link啟動器中重點文本使用的字體路徑。
gui.REGULAR_BOLD
= False link若為True,重點文本加粗。
gui.FONT_SCALE
= 1.0 link啟動器中應用於所有文本的縮放係數。
一個 translate python
語句塊常用於設置這些變數。例如,下面的腳本修改了Ren’Py的阿拉伯語字體。:
translate arabic python:
gui.REGULAR_FONT = "DejaVuSans.ttf"
gui.LIGHT_FONT = "DejaVuSans.ttf"
gui.FONT_SCALE = .9
gui.REGULAR_BOLD = True
下列函數用於配置啟動器中的多語言支持。在init python語句塊中調用這些函數。
translate_font
(language, font) link這個函數用於設置 language 的字體。設置後的字體不僅用在啟動器,也用於使用那種語言生成的遊戲中。字體檔案應該放在game/fonts目錄中。
translate_define
(language, define, value, help=None) link這個函數在生成遊戲是設置一個define。例如,可以用於修改字體的字號。
舉例,下面的代碼修改了對話文本的字號:
translate_define("martian", "gui.text_size", 12)