【更新威力加强版】Fluidd 界面中文本地化补全及优化,增加网页终端 前言原创文章,转载引用请务必注明链接,水平有限,如有疏漏,欢迎交流指正。 请访问 原文链接 以获得文章更新。 目前的 Fluidd 发行版本为 1.16.2,既往已经有朋友做过中文本地化工作,但随着新版本的发布,部分中文界面有些翻译不完全或欠妥,我(思兼)和 Creeper_MZ 一起基于最新的 Fluidd 开发版本(显示为 1.7.0 )做了本地化翻译补全与优化,现在编译并经过初步测试后发布出来,希望大家找出其中翻译不准或者有疑义的地方,并在大家的帮助下,向 Fluidd 官方提交 PR,这样下一版本就能看到我们努力的成果了。有任何建议请@我即可。 【2022年3月23日】 【2022年2月26日更新】 摄像头支持 HTTP Page ,此模式下启用 GPU 硬件加速,提高流畅度,降低系统资源占用。 摄像头支持 idle camera FPS ,众所周知啊,MJPEG-Streamer 还是比较占用系统资源的,此特性可以在摄像头窗口失去焦点时降低帧率,减少系统占用。 修复 websocket cache issue with arrays ,应该是解决上传大 Gcode 文件(上百兆)以及修改配置文件不稳定的问题,有待验证。
此版本中文本地化页面翻译由我(思兼)和 Creeper_MZ 一起完成,在此表示感谢,同时由于提交官方后 Fluidd 又合并了新特性,所以有些词条没有翻译。也希望大家对已翻译内容提出建议。 前段时间 Fluidd 开发停滞,最近又开始恢复更新,虽然相比于 Mainsail 还有些进度需要追赶,但是 Fluidd 界面确实符合个人审美,希望以后越来越好。 如果可以畅通访问外网的话,直接下载 Fluidd Release 解压即可,否则可以使用一键替换脚本,保留威力加强版。 curl -fsSL http://klipper.7130404.xyz:8001/install.sh | bash -s -- 1

【2021年12月22日更新】 基于 xiaok 的分支编译,支持内置网页终端(ttyd),如需远程访问,请做好安全措施。 支持简单的文件上传/下载(lrzsz),默认不启用 威力加强版:由于 Fluidd 官方开发太慢,也为了配合网页终端名称显示,将部分 i18n 多语言支持文件外的词条也进行了翻译

本文介绍以下知识: node.js 的安装 vue.js 的编译 fluidd 的实时预览 最小远程访问 git 的 Fork + Pull 开发流程 Fluidd 新功能介绍 ttyd 以及 lrzsz 的使用
精简版:执行一行命令就可以更换到 Fluidd 自编译开发版本,目前已经更新 v3 威力加强版(2021年12月22日): 复制代码 隐藏代码
# 切换 不带终端的普通 develop 版本curl -fsSL http://klipper.7130404.xyz:8001/install.sh | bash -s -- 1# 切换 附带终端的 develop 威力加强版本(感谢xiaok)curl -fsSL http://klipper.7130404.xyz:8001/install.sh | bash -s -- 3 pi# 默认用户名为 pi,请根据自己情况修改,如用户名为 fly,则如下所示# curl -fsSL http://klipper.7130404.xyz:8001/install.sh | bash -s -- 3 fly 完整版:1、克隆源码进行修改首先我们克隆 Fluidd 源码的 develop 分支,并使用 VSCode 配合 i18n Ally 插件进行修改,该插件会自动识别多国语言文件。多国语言源文件位于:src\locales\cn.yaml 。 复制代码 隐藏代码
git clone https://github.com/fluidd-core/fluidd/ -b develop 
i18n(其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数)是“国际化”的简称。在资讯领域,国际化(i18n)指让产品(出版物,软件,硬件等)无需做大的改变就能够适应不同的语言和地区的需要。对程序来说,在不修改内部代码的情况下,能根据不同语言及地区显示相应的界面。 在全球化的时代,国际化尤为重要,因为产品的潜在用户可能来自世界的各个角落。通常与i18n相关的还有L10n(“本地化”的简称)。——source: baidu.com
2、实时预览修改结果我们根据个人经验,翻译 -> 校对 -> 二翻 -> 二校。但是有些词条不知道在哪里出现,或者同一词条有不同意思,所以需要进行实际测试。一种方法是编译成发行版,另一种方式是实时预览。实时预览的方法在 MainSail 文档中有介绍(Fluidd 文档没提,但是基于 Mainsail,而且经过测试是可以的)。它可以监视文件变动实时预览,这样我们就可以在本地不用费时打包编译的情况下进行验证,大大加快了测试速度。 2.1 基本设置将源代码文件夹中的 .env.development.local.example 重命名并添加编译主机的 IP 地址,假如其地址为 192.168.0.15 : 复制代码 隐藏代码
mv .env.development.local.example env.development.local
echo 'VUE_APP_HOSTNAME=192.168.0.15' > env.development.local 同时修改 运行 klipper + moonraker 服务的主机 (可以与编译主机相同或不同)上的 moonraker.cfg 文件,添加 cors 域名: 复制代码 隐藏代码
http:// local ip>: port> http://192.168.0.15:8080 http://localhost:8080 其中端口号为 nodejs 自动设置。 2.2 安装 Nodejs我们查看 Fluidd 源码可以看到 .node-version 为 14.17.1 。我根据情况不同,分别在 Linux 和 Windows 下安装配置了 NodeJS,后者需要添加环境变量,并且所在文件夹不能有中文字符或者空格。分述如下: 2.2.1 Linux 复制代码 隐藏代码
# Method 1:使用 nvmwget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
nvm install 14.17.1
node -v# Method 2:手动下载安装包# 参考 https://github.com/nodesource/distributionscurl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs# 安装node-red# bash <(curl -sL https://raw.fastgit.org/node-red/linux-installers/master/deb/update-nodejs-and-nodered)# 添加国内镜像源并切换到 fluidd 目录npm config set registry https://registry.npmjs.org
npm install # 一般仅在安装或升级包时执行一次 注意:2.2.2 Windows参考 使用nvm管理node.js版本以及更换npm淘宝镜像源 。手动访问下载地址:https://nodejs.org/dist/v14.17.1/ 注意:需要添加系统环境变量 编译时报错:./node_modules/.bin/vue-cli-service : 无法加载文件 D:\gitee\fluidd\node_modules.bin\vue-cli-service.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 bout_Execution_Policies。 解决方法:Windows PowerShell,并以 管理员身份 运行:set-ExecutionPolicy RemoteSigned 回车,输入 A 回车,再输入 get-ExecutionPolicy 回车,出现 RemoteSigned 即为成功
2.3 启动预览服务 复制代码 隐藏代码
npm run serve # 开启当前测试服务 
如下图所示代表服务启用成功。此时添加 moonraker 服务器地址,即可以进行实时测试。 2.4 番外:最简远程访问这里我们发现,Fluidd 并不一定要在运行 Klipper+Moonraker 的主机上就可以控制打印机,这也就是说最简单的远程访问,只需要暴露主机的 7125 (Moonraker API 默认端口)即可。只需要添加域名到 moonraker.cfg 的 cors_domains 区域即可。实际上,fluidd 和 mainsail 已经提供了类似的远程网页交互前端,并且预加入了 cors_domains ,其地址为http://app.fluidd.xyz/ 和 http://my.mainsail.xyz/ ,快去试试吧! 3、编译发行版进行发布Fluidd 使用 Vue.js 框架,需要编译才能使用,和 html 语言不同,这也是为什么源码和发行版不一样的原因。进入到源码所在文件夹,执行编译命令: 复制代码 隐藏代码
./node_modules/.bin/vue-cli-service build
mv dist/ fluidd/
zip -q -r fluidd.zip fluidd/*
mv fluidd/ dist/ 
如图所示即为编译成功。 复制代码 隐藏代码
# install.sh 安装#! /bin/bashecho -e "\033[36m#####################################################################\033[0m"
echo -e "# Fluidd 1.7.0 中文翻译补全, Modified by \033[31mCreeper_MZ\033[0m and \033[31m思兼\033[0m"
echo -e "# Compiled with \033[31mdev-xiaok\033[0m branch"
echo -e "\033[36m#####################################################################\033[0m"
echo -e "Backup previous Fluidd 1.16.2 and installing 1.7.0"
sleep 2
wget http://klipper.7130404.xyz:8001/fluiddv$1.zip
sudo systemctl stop nginx
cd ~
mv fluidd fluidd.old
unzip fluiddv$1.zip
if [ $2 ]; then
echo -e "\033[33m即将安装 Fluidd 威力加强版\033[0m"
sleep 2
# 下载 ttyd 安装
sudo curl -L https://hub.fastgit.org/tsl0922/ttyd/releases/download/1.6.3/ttyd.armhf -o /usr/local/bin/ttyd
sudo chmod a+rx /usr/local/bin/ttyd
# 安装 lrzsz, 由于 tmux 不支持 Zmodem 协议,默认不启用
# sudo apt install -y lrzsz
# 创建 systemcd.service
cat << _EOF_ > /tmp/ttyd.service
[Unit]
Description=TTYD
After=syslog.target
After=network.target
[Service]
ExecStart=/usr/local/bin/ttyd tmux a -t ttyd
Type=simple
Restart=always
User=$2
Group=$2
ExecStartPre=-/usr/bin/bash -c '/usr/bin/tmux has-session -t ttyd >/dev/null 2>&1 || tmux new-session -d -s ttyd -c /home/$2/ && tmux set -g status off'
[Install]
WantedBy=multi-user.target
_EOF_
sudo mv /tmp/ttyd.service /etc/systemd/system/ttyd.service
# 启动 ttyd 服务并设置开机自启动
sudo systemctl daemon-reload
sudo systemctl start ttyd && sudo systemctl enable ttyd
fi
sudo systemctl start nginx
echo -e "\033[36m#####################################################################\033[0m"
echo -e "# 安装已完成,执行以下命令恢复旧版本 fluidd"
echo -e "\033[31mcd ~ && rm -rf fluidd && mv fluidd.old fluidd\033[0m"
echo -e "\033[36m#####################################################################\033[0m"#sudo systemctl stop nginx
cd ~ && rm -rf fluidd && mv fluidd.old fluidd
sudo systemctl start nginx
sudo systemctl disable ttyd
sudo rm /etc/systemd/system/ttyd.service
sudo rm /usr/local/bin/ttyd
tmux kill-session -t ttyd 参考文档: 4、新版本新功能介绍就像前文 跟着思兼学习Klipper(04) 解决新版Klipper不支持中文gcode文件 介绍的那样,我们可以通过查看 commit 和 PR 的方法了解新功能。这次最主要的是引入了一个新的摄像头选项 HTTP 页面(HTTP Page),具体参考 Add camera iframe option with height option 简单来说: Fluidd 文档 也说过 有时候摄像头显示拖滞、慢的问题,主要靠换接USB3.0、降低分辨率、FPS解决,但是实际上是由于没有开启硬件加速导致。 Here’s a couple of suggestions; Some users have reported that their webcams were problematic when connected to the Pi4’s USB2.0 ports. Try plugging your webcam into the USB3.0 port. Because mjpg streams static images, this can saturate your wifi. Try reducing the fps and resolution of your images. See the /boot/fluiddpi.txt folder on your Pi for more information on how to do this. You can also try connecting to wired ethernet.
【新版额外支持视频流类型】 【实际效果】流畅度非常高,体验良好,但是暂不支持自动缩放,可能会有黑边。 5、编译 xiaok 的内置终端分支注意:如果默认的系统用户名是 pi ,则根据情况修改服务中的 User=fly 为User=pi 复制代码 隐藏代码
# 克隆 fluidd xiaok 分支git clone https://hub.fastgit.org/kluoyun/fluidd/ -b dev_xiaok# 替换 cn.yaml 并编译,此处省略,参考上文。# ...# 下载 ttyd 安装sudo curl -L https://hub.fastgit.org/tsl0922/ttyd/releases/download/1.6.3/ttyd.armhf -o /usr/local/bin/ttyd
sudo chmod a+rx /usr/local/bin/ttyd# 安装 lrzsz, 由于 tmux 不支持 Zmodem 协议,默认不启用# sudo apt install -y lrzsz# 创建 systemcd.servicecat << _EOF_ > /tmp/ttyd.service
[Unit]
Description=TTYD
After=syslog.target
After=network.target
[Service]
ExecStart=/usr/local/bin/ttyd tmux a -t ttyd
Type=simple
Restart=always
User=$2
Group=$2
ExecStartPre=-/usr/bin/bash -c '/usr/bin/tmux has-session -t ttyd >/dev/null 2>&1 || tmux new-session -d -s ttyd && tmux set -g status off'
[Install]
WantedBy=multi-user.target
_EOF_
sudo mv /tmp/ttyd.service /etc/systemd/system/# 启动 ttyd 服务并设置开机自启动sudo systemctl start ttyd && sudo systemctl enable ttyd 部分测试命令及过程记录: 复制代码 隐藏代码
/usr/local/bin/ttyd tmux a -t ttyd
ps -ef | grep tmux
tmux kill-session ttyd
tmux set -g status off # 关闭状态栏,实时# && 左侧成功才执行# || 左侧失败则执行# 没有正确创建 tmux 则报错:no server running on /tmp/tmux-1000/defaultsudo nano /etc/systemd/system/ttyd.service
sudo systemctl daemon-reload
sudo systemctl restart ttyd
sudo systemctl status ttyd
tmux ls
sudo netstat -lnp 参考与备注: 5.1 使用 lrzsz 进行简单的文件上传/下载【默认不启用】ttyd 支持 lrzsz,可以进行网页内的文件上传下载: 复制代码 隐藏代码
# 下载当前目录文件sz filename.txt# 上传文件到当前目录,输入以下命令会弹出对话框,可以选择文件上传rz 我们的默认方案启动了 tmux 之后,无法使用 rz/sz 命令,这是由于 tmux 不支持 Zmodem 协议,如果想要使用 rz/sz 的话只能先退出 tmux rz/sz 不支持超过4G的文件,上传下载4G及以上大小的文件只能由 FTP 或者 WinScp 等工具来解决了 —— source: cnblogs.com 按住Ctrl键, 再按五次x键 (强行终断传输) 可以快速退出 tmux/screen rz/sz 文件卡死 —— source: csdn.net
笔者注1: XShell 默认支持 Zmodem 协议,MobaXterm 默认不支持(毕竟有更方便的 sftp 传输文件) 如想使用网页 lrzsz,请以此命令后台启动或创建服务 ttyd bash 此外简单传输文件可以在 gcode_files 文件夹内创建目标文件夹的软链接,这在下载自动生成的打印过程延时录像中很有用。最终可以在主面板 任务列表 文件夹内找到。
6、威力加强版额外翻译的界面文本原文翻译app.general.title.ttyd终端Part Fan模型风扇Other Files其他文件Add Category添加目录MOTORS OFF关闭电机BED_SCREWS_ADJUST手动调平螺丝QGL四点龙门调平Z_Tilt_AdjustZ轴倾斜调整Screws_Tilt_Calculate辅助调平螺丝 7、提交官方参考:Fork + Pull模式。我们目前已经提交到官方等待审核,预计下个版本就能和大家见面了。 预告下次一起讲讲 Klipper 使用摄像头的问题吧: 树莓派、网络、USB 摄像头的使用 如何查找设备以及修改参数 为何没有 webcam.txt 文件或者内容为空 如何设置延时摄影以及自动生成视频,并创建文件夹方便下载 如何使用摄像头结合 AI 自动识别打印失败并通知(Optional) 如何用旧 Andorid 手机充当 IPCAM(带打光) 多摄像头设置 多实例设置(一台上位机带多台打印机)
|
还没有评论,来说两句吧...