ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

RouterOS Webfig界面汉化完整教程:从原理到实操

RouterOS Webfig界面汉化完整教程:从原理到实操 简介这份资源是为RouterOSROS用户准备的WebFig界面汉化包面向不熟悉英文却需要日常配置路由器的中文网络管理员。它能将WebFig菜单、选项、提示信息等界面文字转换为中文显著降低语言门槛尤其适合企业级网络运维及入门学习者。压缩包共4个文件以json语言配置为主附带png、jpg预览图和txt安装说明整体仅257KB轻量易用。目前已有1264人学习下载。除核心汉化json外还包含直接可用的字体与界面预览图并通过文本说明标注适用版本与安装步骤方便用户按图索骥。需要留意版本兼容性安装前做好配置备份即可在不影响原有功能的前提下获得更友好的Web管理体验。1. 为什么我要折腾RouterOS的web界面汉化先说结论RouterOS的web界面汉化本质上不是改几个翻译文件那么简单它牵扯到RouterOS的系统架构、Winbox协议和Webfig渲染机制。我最早接触RouterOS是帮朋友调试一台RB750Gr3当时他问了一个很现实的问题“这玩意儿全是英文我看不懂能不能弄成中文”我当时第一反应是“应该可以吧”结果一查资料才发现情况比我想象中复杂得多。RouterOS是MikroTik公司的路由系统它的原生界面语言只有英文。官方文档里从来没有提供过官方的中文语言包。社区里流传的汉化方案基本靠两条路一是修改RouterOS的JavaScript渲染文件二是用第三方的语言包注入工具。两条路都有坑后面我会详细说。这个需求其实很真实。国内大量使用RouterOS的用户很多是中小企业的网管、数码爱好者、甚至是一些刚入行的运维新人英文界面确实是他们上手的第一道坎。尤其是做基础配置——PPPoE拨号、DHCP服务器、端口转发、防火墙规则——如果全是英文每一步都得对着翻译软件查效率极低还容易配错。这篇内容我打算按自己的实操经验把RouterOS web界面汉化的完整思路、具体操作步骤、常见坑点和排查方法都写清楚。如果你是第一次接触RouterOS或者已经用了一段时间但始终被英文界面困扰这篇内容可以帮你少走不少弯路。我一直觉得RouterOS这套系统本身的逻辑是很清晰的——它的设计理念是“先接口后策略、先路由后防火墙”如果界面能看懂这套逻辑学起来其实很快。所以汉化这件事看着是“翻译问题”本质上其实是“降低学习门槛”的问题。先说清楚我的实验环境RouterOS版本是6.49.10长期版硬件是一台x86的软路由Webfig端口是默认的80端口。后面所有操作都基于这个环境版本不同可能会有些差异但整体思路是通用的。2. 汉化的核心原理Webfig是怎么被渲染出来的2.1 RouterOS的三种管理界面在动手汉化之前必须先把RouterOS的管理界面体系搞清楚。RouterOS一共有三种管理方式WinboxWindows桌面客户端、SSH命令行、Webfig浏览器web界面。这三种方式共用同一个后台配置系统但前端渲染机制完全不同。Webfig就是我们这次要汉化的对象。它是用JavaScript写的前端直接跑在路由器的HTTP服务里你通过浏览器访问路由器的IP地址看到的就是Webfig。Webfig的代码是打包在RouterOS系统里的它依赖一些js文件来渲染菜单、表格、按钮和表单控件。这里有个关键点Webfig的界面文字并不是从语言包里读取的而是硬编码在JavaScript文件里的。这就是为什么RouterOS没法像普通软件那样出一个“中文语言包”然后一键切换。你要汉化就得直接改这些js文件。2.2 汉化的两种主流思路社区里常见的汉化方法我总结下来就是两种第一种直接替换js文件。把RouterOS里负责渲染界面的js文件导出找到里面的英文字符串替换成中文再导回去。这个方法的优点是彻底、干净只要替换成功界面就是全中文。缺点是很麻烦而且RouterOS的文件系统限制比较多文件大小和格式都有讲究。第二种用代理工具做中间层翻译。在电脑上用Fiddler或Charles这类抓包工具拦截浏览器对RouterOS的js文件请求在本地替换成已经汉化好的js内容。这个方法不碰路由器本身风险低适合尝鲜。缺点是每次换一台电脑都得重新配置代理而且如果路由器启用了HTTPS还得处理证书问题比较繁琐。我自己实际测试下来还是推荐第一种——虽然操作步骤多但是一劳永逸而且能真正理解RouterOS的界面渲染机制。后面我会重点讲这个方法。2.3 需要动刀的文件在哪RouterOS的文件系统需要通过FTP才能访问。你可以在Winbox里打开FTP服务然后用FileZilla这类工具连上去。关键的文件路径我记得很清楚在根目录下有一个webfig文件夹里面是Webfig的核心文件。最核心的是js子目录下的routeros.js这个文件包含了Webfig大部分界面元素的定义和文字内容。不过有个坑RouterOS对文件系统的保护很严格。直接通过FTP上传同名文件覆盖很多版本会提示失败因为系统文件被标记为只读。这时候就需要用RouterOS的/file命令去处理文件属性或者先在本地改好名字上传之后再改回来。这部分操作细节我在后面的实操环节会详细说。3. 实操准备先把环境弄利索3.1 从U盘系统开始说起有人可能会问汉化跟系统装在U盘上有什么关系关系很大。因为汉化需要反复修改、上传、重启测试如果你是在主力生产环境的RouterOS上直接操作一旦搞挂全网都断。所以我强烈建议先在U盘系统或者虚拟机里做实验确认没问题了再到真机操作。RouterOS本身是支持安装在U盘上的。官方提供了ISO镜像也有针对U盘部署的img镜像方案。这一步我觉得值得单独说几句因为很多新手第一次接触RouterOS就是从一个U盘系统开始的。最简单的做法下载RouterOS的CHRCloud Hosted Router镜像或者原版ISO用写盘工具把镜像写入U盘插到x86设备上启动。RouterOS对U盘的兼容性整体不错但实话说U盘性能不如SSD如果跑大量NAT转发U盘会成为瓶颈。所以我一般建议U盘系统只用于测试、学习、汉化实验不推荐在生产环境长期跑。3.2 FTP和Winbox的准备工作我们要在电脑上准备好这几样东西WinboxMikroTik官方的Windows管理工具用于管理RouterOS。FileZilla或其他FTP客户端用于连上RouterOS的文件系统导出和导入js文件。Notepad或其他支持UTF-8编码的文本编辑器用来编辑js文件。这步很关键后续我会专门说编码问题。一个测试用的路由器或U盘系统新手千万别在现网设备上直接搞。Winbox连接方式很简单直接填路由器IP和账号密码就行。连接成功后左侧菜单栏里找到Files点击进入后能看到路由器的文件系统这是传统方式。但更方便的是直接用FTP连上去因为FTP能直接映射到本地磁盘操作起来跟本地文件夹一样。开启FTP服务的方法是Winbox里打开IP-Services找到ftp服务确认端口是21并且勾选启用。注意如果路由器开启了防火墙需要放行从你电脑IP到路由器IP的21端口访问。直接在你本机的浏览器里或者FTP工具里测试一下能连上就说明服务开好了。3.3 备份永远是第一步无论你打算做什么修改第一步永远是备份。RouterOS的备份分两种配置备份用Winbox的Files列表右键backup生成一个.backup文件。这个文件包含路由器的全部配置恢复后能回到备份时的状态。文件系统备份如果你要修改的是系统文件比如js文件务必先把原文件下载到本地存好。这样即使改坏了也能通过FTP上传覆盖回去。我见过不少人跳过备份直接上手改文件改坏了之后只能重装系统配置全部丢失非常痛苦。备份这个动作花不了两分钟但能救命的。4. 核心实操web界面汉化的完整步骤4.1 导出并定位js文件用FileZilla连上路由器后进入/webfig/js/目录。这里会看到很多文件我们需要重点关注的几个是routeros.js核心界面文件包含了绝大部分的界面字符串。loader.js负责加载webfig的js文件。base.js基础组件库部分按钮和通用术语在这里。正常来说导出一个routeros.js文件大小可能在几十KB到几百KB不等。文件一开始是一个大数组里面定义了Webfig所有的菜单、面板和表格布局。用Notepad打开这个文件搜一下Interface、Firewall、IP Address这些词能看到英文文本就说明没找错文件。接下来我们就要把里面的英文字符串替换成中文。4.2 字符串替换的正确姿势这里必须是重点中的重点因为很多人的汉化失败都栽在这一步。第一文件编码必须是UTF-8。RouterOS的Webfig加载js文件时期望的编码格式是UTF-8。如果你用记事本或其他工具把文件保存成了ANSI编码中文会直接乱码甚至可能导致整个界面打不开。所以无论如何保存的时候一定要选UTF-8无BOM格式。第二字符串替换要小心引号转义。js文件里有大量单引号和双引号中文替换时如果你不小心在中文里也带了引号会导致JavaScript语法错误然后整个Webfig加载失败。所以替换时尽量只替换英文字母和空格不要引入额外的特殊字符。第三使用正则表达式批量替换要谨慎。我见过有人用正则一键把所有menu的标签都替换成中文结果把js文件的逻辑代码也给误伤了。所以建议最好是逐条替换或者至少先把文件复制一份改完一部分就检查一次。我实际改的时候习惯先把routeros.js里最常用的几个词替换掉比如Interfaces改成接口、IP改成IP地址严格说这个不用改因为IP本身就是通用缩写、Firewall改成防火墙、Routing改成路由。先做一遍小范围测试确认Webfig能正常加载后再继续替换其他部分。4.3 上传回路由器修改完成后就是最关键的上传环节。用FileZilla把改动过的routeros.js直接拖到/webfig/js/目录下。这里最常见的报错是**“上传失败”或“文件被占用”**原因有两个路由器上Webfig服务正在运行占用了这个文件。文件属性是只读的。解决办法先在Winbox里通过Files列表找到webfig/js/routeros.js右键点击看有没有Properties或Permissions把只读属性去掉。如果去掉只读属性后还是不能覆盖就先把Webfig服务停掉等上传完再打开。在RouterOS命令行里可以这样操作/ip service set www disabledyes这个命令会停掉web服务www就是Webfig的HTTP服务。等文件上传完毕后再把服务开起来/ip service set www disabledno如果你配置了HTTPS访问对应的服务名是www-ssl要停的是这个。上传完之后用CtrlF5强制刷新浏览器缓存然后重新访问路由器的IP就能看到中文界面了。4.4 刷新与验证上传成功后首先验证的是Webfig能不能正常加载。如果页面白屏或者报JavaScript错误说明js文件的语法有问题或者编码不对。这时候要立刻用本地备份的原文件覆盖回去先恢复原状。如果页面能加载出来但是某些菜单还是英文说明那些文字不在routeros.js里而在其他js文件里。这时候就得按同样的方法检查base.js或其他模块文件。我曾经改到后面发现有一个“Apply”按钮的文字在base.js里不处理它的话界面大部分是中文几个按钮还是英文特别丑。5. 常见问题与排查技巧实录5.1 改完上传后Webfig白屏这是最高频的问题。原因通常是三种js语法错误替换时不小心引入了多余的引号、括号或者把字符串截断了。排查方法是用浏览器开发者工具F12打开Console标签页看有没有红色的JavaScript报错报错信息里会提示是哪一行出了问题。编码错误保存的文件编码不是UTF-8导致中文字符在js引擎里无法解析。检查方法是用Notepad重新打开文件看右下角显示的编码格式是不是UTF-8。文件上传不完整FTP传输过程中断导致文件损坏。这个最坑有时候传输完成但文件大小对不上界面就加载不出来。解决方法是上传后立即比对本地文件和路由器上的文件大小是否一致。我自己有一次就是编码问题FTP上传的时候FileZilla默认的传输模式是二进制但我之前用记事本修改过文件记事本默认的ANSI编码导致所有中文字符全部变成乱码Webfig直接打不开。从那之后我再也不用记事本编辑js文件了。5.2 汉化后部分文字还是英文这个问题主要是替换范围不全造成的。我前面提到过Webfig的界面文字分散在多个js文件里只改一个routeros.js是不够的。这里给你一个排查思路用浏览器打开Webfig按F12打开开发者工具切到Sources标签页能看到浏览器加载了哪些js文件。然后逐个检查这些文件里包含的英文字符串把没替换的补上。比较常见的“漏网之鱼”是右下角的“Apply”按钮、“Cancel”按钮、表格里的“Edit”、“Delete”、“Add New”等操作按钮。这些按钮的文字很多在base.js或者forms.js里需要单独处理。5.3 汉化版导致登录页打不开登录页的渲染和主界面的渲染是两套逻辑登录页的文件是login.html加几个独立的js。如果登录页打不开大概率是login.html引用的js文件名称被改了或者文件路径错误。所以这里要提醒一点做汉化时只改内容不要改文件名也不要移动文件路径。Webfig的加载逻辑是按固定文件名去查找的一旦文件名变了整个界面就崩。5.4 浏览器缓存导致看不到变化很多情况下你明明改成功并上传了但浏览器里看到的还是英文。这时候不要怀疑文件没上传成功先试试CtrlF5强制刷新或者开一个无痕窗口重新访问。浏览器缓存是Webfig汉化调试中非常常见的隐形杀手我被坑过不止一次。5.5 从Winbox进入命令行辅助排查很多人会在Webfig里配完网络后不知道怎么直接进入命令行。这个需求其实特别频繁尤其涉及到排查问题时。从Webfig进入命令行有两种方式一是直接在Webfig页面右上角有一个终端图标点击后能进入RouterOS的CLI界面二是在Winbox里直接打开New Terminal窗口这个就是命令行。在命令行里排查汉化问题最有用的是这几条命令# 查看Webfig服务是否正常运行 /ip service print # 查看文件系统中js文件的大小 /file print detail where name~routeros.js # 重启系统让文件重新加载 /system reboot其中重启系统这个方法我在调试汉化时用得最多。有时候FTP上传后文件虽然写入了但Webfig的缓存还是旧的重启一下系统强制所有服务重新加载文件问题就解决了。6. 不同版本的RouterOS汉化差异6.1 v6和v7的差异RouterOS目前有两个大版本v6和v7。v7是较新的大版本核心变化是加入了更多的容器支持、新的路由引擎和更新的安全机制。这两个版本的Webfig文件结构有明显差异。v6版本的Webfig文件比较“朴素”js文件数量不多结构相对简单汉化的时候改动量不大。v7版本的Webfig做了一些重构文件数量和结构都有变化汉化难度比v6略高。但整体思路是一样的——找到js文件、替换字符串、上传覆盖。我个人的建议是如果你只是想在测试环境里玩汉化优先用v6版本因为社区里已有的汉化资源绝大多数是针对v6的参考资料多踩坑成本低。6.2 华为AR6140的Web界面对比说个题外话很多人在搜RouterOS周边的时候也会搜到华为AR6140这种企业路由器的Web界面问题。华为的企业路由器和RouterOS不一样它自带中文界面但登录后想进入命令行入口会比较隐蔽。一般流程是登录Web界面后在左侧菜单或顶部工具栏里找“系统管理”或“系统信息”之类的选项里面有一个“命令行”或“CLI”入口。但说实话华为的设备我更建议直接用SSH或者Console线进命令行因为Web界面上的CLI入口通常只是一个简易终端功能受限。这个跟RouterOS的关系不大但如果你同时接触这两种设备记住一点不同厂商的Web界面设计哲学完全不同RouterOS倾向于把底层细节暴露在Web里而华为倾向于把Web做成“总览配置向导”命令行藏在角落里。前者汉化难度大但可玩性高后者自带中文但路径隐蔽各有取舍。7. 汉化工具与资源推荐7.1 手动汉化的必备工具如果你决定自己手动汉化我推荐这几款工具Notepad免费支持UTF-8编码转换支持正则替换体积小启动快。VS Code功能更强尤其是批量查找替换和代码高亮适合处理大型js文件。FileZilla免费FTP客户端传输稳定支持断点续传。WinboxMikroTik官方管理工具用于开关服务、查看文件属性、备份恢复。这些工具全部免费而且跨平台支持良好。我自己常用的是VS Code加FileZilla的组合因为VS Code在编辑大文件时更稳定不会像记事本那样卡死。7.2 社区汉化包的使用方法说句实在话RouterOS社区里确实流传过一些现成的汉化包格式一般是打包好的js文件集合。这些汉化包的使用方法大同小异把文件上传到对应目录覆盖原文件重启服务。但我要提醒一点很多汉化包是针对特定版本的跨版本使用大概率会出问题。所以即使用现成的汉化包也一定要先备份原文件在测试环境里验证过再上生产环境。我在实际操作中遇到过用汉化包导致Webfig无法打开的情况最后是通过FTP用原文件覆盖回去才恢复的。7.3 半自动工具的思路如果你有一定编程基础可以写一个简单的Python脚本来自动完成字符串替换比在文本编辑器里手动替换效率高很多。核心逻辑是读取js文件定义一串要替换的英文关键词到中文的映射表然后逐行扫描替换。import re import io mapping { Interfaces: 接口, Firewall: 防火墙, Routing: 路由, Wireless: 无线, Bridge: 桥接, Queue: 队列, System: 系统, Files: 文件, Log: 日志, Tools: 工具, IP: IP, User: 用户 } def translate_file(input_path, output_path): with io.open(input_path, r, encodingutf-8) as f: content f.read() for en, cn in mapping.items(): content content.replace(en, cn) with io.open(output_path, w, encodingutf-8) as f: f.write(content) translate_file(routeros.js, routeros_cn.js)注意这个脚本只能处理直接完整匹配的英文词如果你要替换的英文在文件里出现在字符串中间可能需要调整替换逻辑。另外这个脚本有一个风险如果英文关键词本身是JavaScript的变量名、方法名或类名的一部分直接替换会导致语法错误所以脚本的映射表要谨慎设计宁可少替换也不要误伤。8. 我的经验总结与建议这些年在RouterOS上折腾汉化我最大的感受是汉化本身不难难的是理解整个Webfig的渲染逻辑和文件依赖关系。很多人卡住是因为把它当成一个“语言包安装”问题来对待而实际上它是一个“文件系统改造”问题。如果你只是想快速把界面变成中文我建议按这个顺序来先在U盘系统或虚拟机里建一个测试环境。备份原文件。只替换最常用的那几个新增大项比如“Interfaces”、“Firewall”、“IP”等。验证无误后再逐步扩大替换范围。每次改动都保留一份可回滚的备份。如果你是想在生产环境做汉化我建议慎重再慎重。生产环境追求的是稳定而汉化操作必然要重启Web服务或者整个系统这会造成短暂的中断。更稳妥的方式是在备用设备上做好汉化然后同配置切换到生产环境。最后再分享一个我实际踩过的坑在修改js文件时尽量用英文引号和英文字符做边界不要在中文文案里加多余的引号或注释符号。好几次我就是在中文后面随手加了个//注释结果导致后面一长串代码全部被注释掉整个界面直接变了形。这种问题排查起来特别费时间所以规范操作比图省事重要得多。汉化只是RouterOS众多可玩性中的一小块但它能让你更快地上手这套系统理解它的配置逻辑。等界面变成中文之后你会发现自己能更快地找到菜单、理解选项学起RouterOS来会顺畅很多。我个人建议汉化完成后重点去摸索防火墙规则、NAT规则和DHCP分配这几块吃透了这些RouterOS的基本功也就扎实了。本文还有配套的精品资源点击获取
返回列表