OpenWRT LUCI国际化

本人所写的博客都为开发之中遇到问题记录的随笔,主要是给自己积累些问题。免日后无印象,如有不当之处敬请指正(欢迎进扣群 24849632 探讨问题);

一、国际化的实现

我们先看看i18n.lua dispatch函数

function dispatch(request)
	--context._disable_memtrace = require "luci.debug".trap_memtrace("l")
	local ctx = context
	ctx.path = request

	local conf = require "luci.config"
	assert(conf.main,
		"/etc/config/luci seems to be corrupt, unable to find section 'main'")

	local i18n = require "luci.i18n"
	local lang = conf.main.lang or "auto"
	if lang == "auto" then
		local aclang = http.getenv("HTTP_ACCEPT_LANGUAGE") or ""
		for lpat in aclang:gmatch("[%w-]+") do
			lpat = lpat and lpat:gsub("-", "_")
			if conf.languages[lpat] then
				lang = lpat
				break
			end
		end
	end
	if lang == "auto" then
		lang = i18n.default
	end
	i18n.setlanguage(lang)
    ...
}

这里对使用的语言进行检查,如果有/etc/config/luci [main]节中有定义语言则使用配置文件中的定义,如果定义为‘auto'则根据浏览器的请求头’HTTP_ACCEPT_LANGUAGE'进行设置。我们通过修改/etc/config/luc

你可能感兴趣的:(构建一套智能控制系统)