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)