语言的选择在dispatch函数入口出完成,如果配置文件/etc/config/luci中配置的lang为auto,则根据浏览器所带的信息选择一个合适的语言,否则就使用lang定义的语言,然后使用i18n.lua中的setlanguage设置对应的语言。
local lang = conf.main.lang or "auto"
装载资源文件使用i18n.lua中的函数loadc。资源文件位于/usr/lib/lua/luci/i18n,后缀名为lmo,这些文件是有.po文件转换的紧凑格式。
如果对应的页面有自己的资源文件,可以在entry定义菜单时添加,如
entry({"admin", "network", "ahcpd"}, cbi("ahcp"), _("AHCP Server"), 90).i18n = "ahcp"
在disptach中会自动加载
if track.i18n then
end
也可以在htm文件中主动调用loadc加载资源文件。
对于需要多语言显示的字符串,调用i18n.lua中的translate获取对应语言的字符串显示,参数是po文件对应的英文资源名称。
http://blog.csdn.net/kwongfung/article/details/8488188
官方文档:http://luci.subsignal.org/api/luci/modules/luci.i18n.html