本地化
创建翻译
首先,创建一个名为 i18n
的文件夹,用于存放 JSON 格式的翻译文件,你的所有翻译内容都将保存在这些文件中。
例如,我们可以创建 en.json
和 ru.json
文件,分别对应英文和俄语。
现在,我们可以为这些文件添加一些内容:
en.json
ru.json
{
"game": {
"title": "Cool Game"
},
"button": "Button"
}
{
"game": {
"title": "Крутая игра"
},
"button": "Кнопка"
}
获取翻译
要获取某个键对应的值,可以使用 i18n.localize(key)
方法。
print( i18n.key("game.title") ) -- "Cool Game"
也有一个辅助方法 i18n.gui(node_id, key)
,它可以替换用户界面中选定节点的内容。
通过使用 i18n.gui()
我们可以简化:
gui.set_text(gui.get_node("Title Label"), i18n.key("game.title"))
前:
i18n.gui("title_label", "game.title")
游戏本地化示例
local i18n = require('ysdk.i18n')
local function on_localize()
i18n.gui("title_label", "game.title")
i18n.gui("button_label", "game.title")
end
function init(self)
i18n.on(on_localize)
end
function final(self)
i18n.off(on_localize)
end
切换翻译语言
备注
i18n 模块会自动根据环境变量初始化为用户的语言。
建议仅在需要根据用户的选择手动切换语言时,才使用此方法。
要切换翻译语言,可以使用方法 i18n.set_language(code: string)
。
function settings.change_language(code)
i18n.set_language(code)
end
已复制