问题描述
官方提供的 sftpgo webui 的默认语言为英文,没有待中文的语言包。实际上中文语言包已经翻译完毕,本文介绍一种在不重新编译的情况下为 sftpgo 的 webui 增加中文包的方法。
准备
- (已完成安装的跳过) 安装 sftpgo 的官方安装包,这里例子中使用的是:sftpgo_v2.6.6_windows_portable.zip 具体下载地址:https://github.com/drakkan/sftpgo/releases
- 下载已经汉化的中文资源,其实际上是一个 json 文件,可以参考这个:https://gitee.com/chenbichao/sftpgo-ryan/blob/master/static/locales/zh/translation.json
- sftpgo 服务已可以正常使用
原理
webui 的前端资源都已经在 sftpgo 的可执行文件的同级目录下存在,分别是 template 文件夹下的页面展示信息和 static 文件夹下的资源。通过直接修改 template 中的 js 代码可以增加页面中的语言选项,并在用户点击是自动下载该资源。资源数据下载后存储在浏览器的 localstorage 中,可能存在缓存。可能需要清理 localstorage 中该网址下的 i18next 开头的项。
操作步骤
- 修改 template/common/base.html 搜索 Italiano 字样,原始数据如下:
const lngs = { en: { nativeName: 'English' }, it: { nativeName: 'Italiano' }};
将这部分修改为
const lngs = { en: { nativeName: 'English' }, it: { nativeName: 'Italiano' }, zh: { nativeName: '简体中文' }};
然后搜索 supportedLngs 字段,原始数据如下:
supportedLngs: ["en", "it"],
将这部分修改为:
supportedLngs: ["en", "it", "zh"],
完成上述两处修改后保存文件
- 增加 static/locales/zh/translation.json 文件 把下载得到的 translation.json 文件存放至 static/locales/zh/ 目录下 (没有该目录则创建)

