果引擎 2.0 版提供了一个轻便的国际化功能,这使得你可以轻松制作多语言的 UI 界面。该功能由 script/lib/i18n
中的一系列脚本提供。默认支持中、英、日三种语言。i18n 起源于英文单词 internationalization
,因该单词以 i 开头,n 结尾,共 18 个字母而得名。
在脚本 setGlobals
中,将设置 global.enable_internationalization = false
即可。(默认不禁用)
-
为了便于管理,你首先需要在
i18n_init
中声明初始化脚本并执行,例如i18n_init_my_test()
-
新建一个脚本
i18n_init_my_test
,在其中利用i18n_add
脚本定义多语言字符串的内容,参数顺序为“标识符,中文,英文,日文”。例如:i18n_add('my_test', '测试', 'test', 'テスト') i18n_add('you_typed', '你输入了:${0}。', 'You typed: ${0}.', 'あなたは${0}を入力した。')
即在多语言字符库中添加了名为
my_test
的多语言标识符
。其中,${0}
为占位符,之后可以通过额外参数的传入来将其替换。?> 推荐使用蛇形命名法来命名标识符,这样能够有效避免字符串的误操作。至少,标识符与它所代表的字符串应该互不相同。
-
在你想使用这些字符串的时候,使用:
// 假设当前语言为中文 // 获取在当前语言设置下 my_test 的值 i18n_get('my_test') // 测试 // 获取在当前语言设置下 you_typed 的值,并用 some message 替换 {0} i18n_get('you_typed', 'some message') // 你输入了:some message。
即可根据当前设置的语言获取对应的字符串。
?> 引擎默认可以设置 4 个占位符:${0}, ${1}, ${2}, ${3},如果需要使用更多占位符,可以到脚本 i18n_init 中设置
global.__i18n_max_placeholders
。 -
如果需要
draw
或者show_message
类似的函数,在前面加上i18n_
即可自动获取国际化内容,例如:Create Event:
str = i18n_get_integer('my_test', str) // 如果需要替换占位符,需要手动调用 i18n_get i18n_show_message(i18n_get('you_typed', str))
Draw Event:
// 同时设置横向与纵向对齐方式 i18n_draw_set_align(fa_center, fa_middle) i18n_draw_text(400, 304, 'my_test')
!> 使用 draw_text_color
等名称中含有 color 的文字绘制脚本时,内置函数有 4 个颜色参数,代表四个角落的颜色;而由于插件的功能限制,i18n 系列函数仅有两个颜色参数,代表由上至下的渐变。例如 i18n_draw_text_color(x, y, string, color1, color2, alpha)
默认语言在脚本 setGlobals
中设置,可以为 LANG_CN
, LANG_EN
或 LANG_JP
。
请参考 Script 文档