Skip to content

Latest commit

 

History

History
67 lines (45 loc) · 2.96 KB

i18n.md

File metadata and controls

67 lines (45 loc) · 2.96 KB

多语言支持

果引擎 2.0 版提供了一个轻便的国际化功能,这使得你可以轻松制作多语言的 UI 界面。该功能由 script/lib/i18n 中的一系列脚本提供。默认支持中、英、日三种语言。i18n 起源于英文单词 internationalization,因该单词以 i 开头,n 结尾,共 18 个字母而得名。

如何禁用

在脚本 setGlobals 中,将设置 global.enable_internationalization = false 即可。(默认不禁用)

简介

  1. 为了便于管理,你首先需要在 i18n_init 中声明初始化脚本并执行,例如

    i18n_init_my_test()
  2. 新建一个脚本 i18n_init_my_test ,在其中利用 i18n_add 脚本定义多语言字符串的内容,参数顺序为“标识符,中文,英文,日文”。例如:

    i18n_add('my_test', '测试', 'test', 'テスト')
    i18n_add('you_typed', '你输入了:${0}。',
        'You typed: ${0}.', 'あなたは${0}を入力した。')

    即在多语言字符库中添加了名为 my_test多语言标识符。其中,${0}为占位符,之后可以通过额外参数的传入来将其替换。

    ?> 推荐使用蛇形命名法来命名标识符,这样能够有效避免字符串的误操作。至少,标识符与它所代表的字符串应该互不相同。

  3. 在你想使用这些字符串的时候,使用:

    // 假设当前语言为中文
    // 获取在当前语言设置下 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

  4. 如果需要 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_ENLANG_JP

国际化脚本目录

请参考 Script 文档