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更新镜像。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
请把这个活动推给顶尖程序员😎本次活动专为懂行的顶尖程序员量身打造,聚焦AtomGit首发开源模型的实际应用与深度测评,拒绝大众化浅层体验,邀请具备扎实技术功底、开源经验或模型测评能力的顶尖开发者,深度参与模型体验、性能测评,通过发布技术帖子、提交测评报告、上传实践项目成果等形式,挖掘模型核心价值,共建AtomGit开源模型生态,彰显顶尖程序员的技术洞察力与实践能力。00
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
MiniMax-M2.5MiniMax-M2.5开源模型,经数十万复杂环境强化训练,在代码生成、工具调用、办公自动化等经济价值任务中表现卓越。SWE-Bench Verified得分80.2%,Multi-SWE-Bench达51.3%,BrowseComp获76.3%。推理速度比M2.1快37%,与Claude Opus 4.6相当,每小时仅需0.3-1美元,成本仅为同类模型1/10-1/20,为智能应用开发提供高效经济选择。【此简介由AI生成】Python00
Qwen3.5Qwen3.5 昇腾 vLLM 部署教程。Qwen3.5 是 Qwen 系列最新的旗舰多模态模型,采用 MoE(混合专家)架构,在保持强大模型能力的同时显著降低了推理成本。00- RRing-2.5-1TRing-2.5-1T:全球首个基于混合线性注意力架构的开源万亿参数思考模型。Python00