Paperless-ngx 多语言支持:本地化配置与翻译贡献指南
Paperless-ngx 作为一款开源文档管理系统(Document Management System, DMS),支持全球多语言界面与文档处理能力。本文将详细介绍如何配置系统语言环境、自定义本地化内容,以及参与翻译贡献的完整流程,帮助用户与开发者构建更友好的多语言文档管理体验。
多语言架构概览
Paperless-ngx 的本地化(Localization, L10n)系统采用前后端分离架构,分别处理后端逻辑与前端界面的语言资源:
- 后端本地化:基于 Django 框架的国际化(Internationalization, i18n)系统,使用 Gettext 格式的
.po文件存储翻译文本,路径为 src/locale/。 - 前端本地化:采用 Angular 的国际化方案,通过 XLIFF 格式的
.xlf文件管理界面翻译,路径为 src-ui/src/locale/。
系统默认支持英语(en_US),并通过社区贡献扩展至 40+ 种语言,包括中文(zh_CN)、日语(ja_JP)、德语(de_DE)等。完整语言列表可在 src/paperless/settings.py 的 LANGUAGES 配置中查看。
语言文件结构
paperless-ngx/
├── src/
│ └── locale/ # 后端翻译文件
│ ├── en_US/ # 英语源文件
│ ├── zh_CN/ # 中文翻译
│ └── ...
└── src-ui/
└── src/locale/ # 前端翻译文件
├── messages.xlf # 源语言模板
├── messages.zh_CN.xlf # 中文翻译
└── ...
本地化配置指南
1. 系统语言设置
Docker 部署
通过环境变量 PAPERLESS_LANGUAGE 指定界面语言,例如设置为中文:
# docker-compose.env
PAPERLESS_LANGUAGE=zh_CN
裸金属部署
修改配置文件 paperless.conf:
# paperless.conf
PAPERLESS_LANGUAGE=zh_CN
动态切换语言
管理员可在 Web 界面 设置 > 应用配置 中实时切换系统语言,支持为不同用户保存独立语言偏好。
2. OCR 语言配置
Paperless-ngx 使用 Tesseract OCR 引擎识别多语言文档,需通过环境变量指定支持的语言包:
# docker-compose.env
PAPERLESS_OCR_LANGUAGES=chi_sim eng # 中文简体 + 英语
支持的语言代码可参考 Tesseract 语言列表。安装额外语言包后,需重启服务使配置生效。
3. 日期与时间格式
通过 PAPERLESS_TIME_ZONE 调整时区,影响文档创建时间、邮件处理等时间显示:
# 中国时区
PAPERLESS_TIME_ZONE=Asia/Shanghai
翻译贡献流程
1. 贡献指南
Paperless-ngx 使用 Crowdin 协作翻译平台,贡献步骤如下:
- 注册账号:访问 Crowdin 项目页面并登录。
- 选择语言:在项目主页选择目标语言(如“Chinese Simplified”)。
- 翻译内容:通过 Web 界面翻译缺失文本,或下载文件离线翻译。
- 提交审核:翻译完成后提交审核,由语言管理员验证质量。
2. 本地化文件格式
后端 .po 文件示例
# src/locale/zh_CN/LC_MESSAGES/django.po
msgid "Document"
msgstr "文档"
msgid "Correspondent"
msgstr "联系人"
前端 .xlf 文件示例
<!-- src-ui/src/locale/messages.zh_CN.xlf -->
<trans-unit id="dashboard.title">
<source>Dashboard</source>
<target>仪表盘</target>
</trans-unit>
3. 手动翻译流程
提取源文本
后端:
cd src/
python manage.py makemessages -l en_US # 更新英语源文件
前端:
cd src-ui/
ng extract-i18n # 生成 messages.xlf
编译翻译
后端:
python manage.py compilemessages # 生成 .mo 二进制文件
前端:
ng build --configuration production # 编译时嵌入翻译
高级自定义
1. 自定义翻译覆盖
如需修改现有翻译,可直接编辑对应语言文件,例如调整中文“文档类型”的译法:
# src/locale/zh_CN/LC_MESSAGES/django.po
msgid "Document Type"
msgstr "文件类型" # 自定义翻译
2. 多语言测试
开发环境中可通过以下命令验证翻译完整性:
# 检查未翻译的字符串
python manage.py makemessages -l zh_CN --no-wrap --check
3. 社区翻译进度
通过 Crowdin 统计页面 查看各语言翻译完成度,重点关注:
- 已翻译:已完成翻译的字符串比例
- 已审核:通过质量审核的翻译比例
- 待翻译:新增未翻译的字符串数量
常见问题
Q1: 界面部分文本未翻译?
A1: 可能是翻译未同步至最新版本。可通过以下步骤解决:
- 确认使用最新版 Paperless-ngx
- 在 Crowdin 检查对应语言翻译状态
- 手动更新翻译文件并重启服务
Q2: OCR 无法识别中文文档?
A2: 需确保:
- 已安装
tesseract-ocr-chi_sim语言包 PAPERLESS_OCR_LANGUAGES包含chi_sim- 文档清晰度足够(建议分辨率 ≥ 300 DPI)
Q3: 如何贡献新语言?
A3: 联系项目维护者在 Crowdin 平台添加语言,或提交 PR 修改以下文件:
- src/paperless/settings.py 添加语言选项
- src-ui/src/app/services/settings.service.ts 添加前端语言支持
总结
Paperless-ngx 的多语言支持覆盖从界面显示到文档处理的全流程,通过灵活的配置与活跃的社区翻译,满足全球用户的本地化需求。无论是用户配置多语言环境,还是开发者参与翻译贡献,本文档均提供了清晰的操作指南。
如需进一步支持,可参考:
- 官方文档:Localization
- 社区论坛:Paperless-ngx Discussions
- 翻译平台:Crowdin Project
通过共同维护多语言生态,Paperless-ngx 将持续提升全球用户的文档管理体验。
提示:定期同步上游翻译可获取最新语言更新,Docker 用户可通过
docker compose pull更新镜像。
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin08
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00