sftpgo汉化处理

问题描述

官方提供的sftpgo webui的默认语言为英文, 没有待中文的语言包。实际上中文语言包已经翻译完毕,本文介绍一种在不重新编译的情况下为sftpgo的webui增加中文包的方法。

准备

  1. (已完成安装的跳过) 安装sftpgo的官方安装包, 这里例子中使用的是: sftpgo_v2.6.6_windows_portable.zip 具体下载地址: https://github.com/drakkan/sftpgo/releases
  2. 下载已经汉化的中文资源,其实际上是一个json文件, 可以参考这个:https://gitee.com/chenbichao/sftpgo-ryan/blob/master/static/locales/zh/translation.json
  3. sftpgo服务已可以正常使用

原理

webui的前端资源都已经在sftpgo的可执行文件的同级目录下存在,分别是template文件夹下的页面展示信息 和 static文件夹下的资源。通过直接修改template中的js代码可以增加页面中的语言选项,并在用户点击是自动下载该资源。资源数据下载后存储在浏览器的localstorage中,可能存在缓存。可能需要清理localstorage中该网址下的i18next开头的项。

操作步骤

  1. 修改 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"],

完成上述两处修改后保存文件

  1. 增加 static/locales/zh/translation.json 文件
    把下载得到的translation.json文件 存放至 static/locales/zh/ 目录下(没有该目录则创建)

  2. 清理浏览器的localstorage,并重启sftpgo服务
    避免缓存影响.

结束.

补充说明

以上过程也适用于linux等环境下的sftpgo版本.

另外一种简化版思路

直接使用中文的translation.json覆盖意大利语的 static/locales/it/translation.json, 清理localstorage中的i18next_res_it-translation项, 后续选意大利语实际上就会直接使用中文资源了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值