游戏多语言是指界面或者游戏中的文本根据不同的语言设置,显示不同的语言文本。

这里要说的思路是通过配置表的形式,来做多语言逻辑。首先,需要建立一个表,第一列为ID,值可以随便定义,只要保证唯一就可以。第二列为中文,第三列为英文,如果有其他的语言需求,只要加列就可以。

写一个多语言数据管理的类,游戏运行时,将多语言表加载,并存到字典中。在游戏中,所有用到多语言的地方,都要通过ID去获取对应的文本,在获取函数中,通过判断当前设置的语言,返回对应语言的文本。例如,要获取 ”新游戏“ 这个按钮的文本,如果当前设置中设置的是日语,则会返回 ”新しいゲーム“

多语言表,可以由策划去维护,不同策划负责不同模块,由他们将自己负责的模块中要用到的多语言配置在表中,然后将对应的ID告诉程序,由程序将ID硬编码在逻辑中。ID一旦确定,则不能修改。

UI模块,如果要动态刷新,可以通过事件的形式,当玩家在设置模块中修改了语言,则广播出一个事件去,所有UI监听这个事件,当收到这个事件时,就重新获取一遍多语言文本,然后刷新UI。