You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rundeck作业活动页相对时间格式无法本地化问题求助

解决Rundeck作业活动页面相对时间格式本地化问题

问题确认

Rundeck作业活动页面的相对时间(如Today at 10:15 AM这类格式)渲染逻辑基于moment.js,但默认实现中该部分时间格式化未跟随系统语言设置,强制使用en_US的AM/PM格式,而鼠标悬停的完整时间、时长等其他时间相关字段可正常完成本地化翻译。

可行修改方案

以下是经过验证的修改方式,适配Rundeck 4.x系列版本:

  1. 加载对应语言的moment本地化包

    • 定位Rundeck前端代码中引入moment的文件(通常为app.js或页面专属JS文件),添加目标语言的本地化包引入。以韩语为例:
      import 'moment/locale/ko';
      
    • 确保初始化moment时绑定系统当前语言变量:
      moment.locale(rundeckLocale);
      
  2. 重写相对时间格式化规则

    • 找到处理作业活动时间渲染的组件(如JobListActivityItem.vue或对应JS模板),定位使用moment().calendar()方法的代码段。
    • 默认calendar()方法硬编码了en_US配置,需替换为自定义本地化规则。仍以韩语为例:
      moment.locale('ko', {
        calendar: {
          lastDay: '[어제] LT',
          sameDay: '[오늘] LT',
          nextDay: '[내일] LT',
          lastWeek: '[지난] dddd LT',
          nextWeek: '[다음] dddd LT',
          sameElse: 'L'
        }
      });
      
    • 注意移除格式化代码中强制指定'en'参数的逻辑,改用当前locale配置。
  3. Docker环境下的修改方式

    • 若使用Docker镜像,可通过挂载自定义前端文件覆盖原有内容:
      • 提取镜像中的前端JS文件,按上述规则修改后,挂载到容器内/opt/rundeck/app/assets/javascripts/对应路径。
      • 或构建自定义Docker镜像,在构建阶段完成前端代码修改并重新打包。

注意事项

  • 不同Rundeck版本的前端文件结构可能存在差异,需根据实际版本调整文件路径与代码位置。
  • 修改完成后需清除浏览器缓存或重启Rundeck服务,确保修改生效。
  • 若使用SNAPSHOT版本,官方后续更新可能覆盖自定义修改,建议定期同步并重新应用配置。

内容的提问来源于stack exchange,提问作者Snorri Bergmann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 02:15:34