openwrt安装后默认英文增加中文

openwrt安装后默认英文增加中文,第1张

在树莓派或其他设备里安装完openwrt后,默认是英文,需要增加并改成中文

1、语言菜单在:System-System- System Properties- Language and Style- auto。

默认是auto。

2、进入System-Software- 在这个页面的前几行可以看到:

Download and install package: 和Actions

先点击:Actions下方的,Update lists,可能需要几分钟,更新。

3、Download and install package 的下方输入:luci-i18n-base-zh-cn,并点击 OK。 几秒钟后就可以看到中文。

可以回到语言设置为中文,在中文环境下如果是auto,也会显示中文。

将语言设置为中文后,请点击右下方的:保存或应用(Save &Apply)

完成中文的设置的。

注意,官方的文档可能是针对老版本的, https://openwrt.org/zh-cn/doc/howto/luci.essentials

用的是:opkg install luci-i18n-chinese (在op19里,没有luci-i18n-chinese这个包)

这个问题比较碎,慢慢说吧

LuCi是用Lua写的Web框架,所以你要修改这些文字就需要修改Lua脚本或者Lua脚本获得的信息

在中间的“系统名称”和“路由型号”是定义在/usr/lib/lua/luci/sys.lua这个文件里,在这个文件里你会找到一个函数叫做sysinfo()

function sysinfo()

local cpuinfo = fs.readfile("/proc/cpuinfo")

local meminfo = fs.readfile("/proc/meminfo")

local memtotal = tonumber(meminfo:match("MemTotal:%s*(%d+)"))

local memcached = tonumber(meminfo:match("\nCached:%s*(%d+)"))

local memfree = tonumber(meminfo:match("MemFree:%s*(%d+)"))

local membuffers = tonumber(meminfo:match("Buffers:%s*(%d+)"))

local bogomips = tonumber(cpuinfo:match("[Bb]ogo[Mm][Ii][Pp][Ss].-: ([^\n]+)")) or 0

local swaptotal = tonumber(meminfo:match("SwapTotal:%s*(%d+)"))

local swapcached = tonumber(meminfo:match("SwapCached:%s*(%d+)"))

local swapfree = tonumber(meminfo:match("SwapFree:%s*(%d+)"))

local system =

cpuinfo:match("system type\t+: ([^\n]+)") or

cpuinfo:match("Processor\t+: ([^\n]+)") or

cpuinfo:match("model name\t+: ([^\n]+)")

local model =

luci.util.pcdata(fs.readfile("/tmp/sysinfo/model")) or

cpuinfo:match("machine\t+: ([^\n]+)") or

cpuinfo:match("Hardware\t+: ([^\n]+)") or

luci.util.pcdata(fs.readfile("/proc/diag/model")) or

nixio.uname().machine or

system

return system, model, memtotal, memcached, membuffers, memfree, bogomips, swaptotal, swapcached, swapfree

end

这段代码里,model这个变量的结果就是你看到“路由型号”,所以你只要修改这个变量,或是这个变量指向的文件(/tmp/sysinfo/model),页面上看到的产品型号就会变化

那“系统名称”呢,英文版里更清晰,其实是指的“Hostname”,也就是你的路由器在局域网内的名字。这个的值很明白,是Linux系统决定的,具体修改的文件是/etc/config/system,里面有hostname一项。LuCI开机时从nixio.so这个动态库里的函数调用显示了这个值。从hostname(newname)这个函数里能看出来Lua使用的hostname暂存在内存的/proc/sys/kernel/hostname这里

function hostname(newname)

if type(newname) == "string" and #newname > 0 then

fs.writefile( "/proc/sys/kernel/hostname", newname )

return newname

else

return nixio.uname().nodename

end

end

我在命令行里运行echo "lalala" >/proc/sys/kernel/hostname之后,又修改了设备名称文件(tmp/sysinfo/model),将TP-Link WDR4300 V1后面的型号去掉,看起来就是这样子

(我的是新版的LuCI,界面看起来不太一样但是代码一样的)

至于固件版本,这个变量的脚本存在/usr/lib/lua/luci/version.lua。具体内容你进去看一眼应该就对上号了

记得/proc/sys/kernel/hostname和/tmp/sysinfo/model都是临时文件(都在内存里,重启或者断电就消失了)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11516230.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存