certflow.views.common.i18n_manager module

国际化管理器

提供应用级别的语言切换引擎。 由于当前应用未使用 QTranslator/.qm 翻译文件体系,I18nManager 采用 动态字典查找 + QObject.tr() 兼容模式实现语言切换。

架构层次:

Controller (SettingsController) → View/Common (I18nManager) → 各 View 的 tr() 调用

当前策略:
  • 维护中英文翻译字典

  • 语言切换时发出 language_changed 信号

  • 各 View 监听该信号后自行调用 retranslateUi() 刷新界面文本

  • 为未来 .qm 文件迁移预留接口

Usage:

manager = I18nManager() manager.switch_language("zh_CN") manager.switch_language("en_US") text = manager.tr("导入") # → "Import"

class certflow.views.common.i18n_manager.I18nManager(parent=None)[源代码]

基类:QObject

国际化管理器 — 中/英文切换

维护核心 UI 文本的翻译字典,语言切换时发出信号通知各 View 刷新。

参数:

parent (QObject | None)

language_changed

语言变更信号,携带新语言代码 (zh_CN / en_US)

TRANSLATIONS: dict[str, dict[str, str]] = {'-- 没有历史文件,请浏览 --': '-- No history, please browse --', '-- 选择历史文件 --': '-- Select History File --', 'CertFlow - 阀门证书管理系统': 'CertFlow - Valve Certificate Management System', 'English': 'English', 'X 偏移 (向右为正):': 'X Offset (right positive):', 'Y 偏移 (向下为正):': 'Y Offset (down positive):', 'dark (深色)': 'dark (Dark)', 'en_US (English)': 'en_US (English)', 'light (浅色)': 'light (Light)', 'zh_CN (简体中文)': 'zh_CN (Simplified Chinese)', '⚙️ 偏好设置': '⚙️ Preferences', '⚙️ 系统设置': '⚙️ Settings', '✅ 系统就绪': '✅ System Ready', '✓ 是': '✓ Yes', '✗ 否': '✗ No', '个值': ' values', '个子节点': ' sub-nodes', '个字段': ' fields', '个对象': ' objects', '个扫描件': 'scan file(s)', '个文件': 'file(s)', '主题:': 'Theme:', '产品名称': 'Product Name', '产品型号': 'Product Model', '介质': 'Medium', '份...': 'copy/copies...', '份数': 'Copies', '保存失败': 'Save Failed', '保存成功': 'Save Successful', '保存设置': 'Save Settings', '值': 'Value', '值 / 说明': 'Value / Description', '全选': 'Select All', '关闭': 'Close', '分钟': ' min', '切换界面显示语言,保存后立即生效': 'Switch the interface display language, takes effect immediately after saving', '切换界面颜色主题,保存后立即生效。也可点击导航栏右侧的 🌙/☀️ 按钮快速切换': 'Switch the interface color theme, takes effect immediately after saving. You can also click the 🌙/☀️ button on the right side of the navigation bar to quickly toggle', '列映射': 'Column Mapping', '列表': 'List', '刷新': 'Refresh', '剩余': 'remaining', '单张打印': 'Single Print', '压力': 'Pressure', '取消': 'Cancel', '取消全选': 'Deselect All', '变更': 'Changes', '否': 'No', '启用后,系统会定时自动保存打印视图中正在编辑的合格证数据到数据库,防止意外退出丢失记录': 'When enabled, the system periodically auto-saves the certificate data being edited in the print view to the database, preventing data loss on unexpected exit', '启用自动保存': 'Enable Auto Save', '字段': 'Field', '导入': 'Import', '导入中...': 'Importing...', '导入完成': 'Import Completed', '导入对话框中「最近文件」列表的最大保留条数,超出后自动裁剪': "Maximum number of entries kept in the 'Recent Files' list in the import dialog, older entries are trimmed automatically", '导入数据前弹出确认对话框,防止误操作覆盖已有销售计划记录': 'Show a confirmation dialog before importing data to prevent accidentally overwriting existing sales plan records', '导入配置': 'Import Configuration', '导出': 'Export', '就绪': 'Ready', '工作表': 'Worksheet', '已加载': 'Loaded', '已发送第一张打印': 'First print sent', '已完成': 'Completed', '已生成': 'Generated', '常规': 'Regular', '张': 'cards', '张合格证打印,是否生成扫描件?': 'certificate(s) printed. Generate scans?', '张,是否继续?': 'cards, continue?', '总记录': 'Total Records', '恢复默认': 'Restore Defaults', '手动输入': 'Manual Input', '打印历史': 'Print History', '打印合格证': 'Print Certificates', '打印坐标:': 'Print Coordinates:', '打印失败': 'Print Failed', '打印字体:': 'Print Font:', '打印完成': 'Print Completed', '打印机': 'Printer', '打印选中': 'Print Selected', '扫描件生成': 'Scan Generation', '扫描件生成完成!\n共': 'Scan generation completed!\nTotal', '批量参数:': 'Batch Parameters:', '批量打印': 'Batch Print', '批量打印完成,共': 'Batch print completed, total', '批量打印已取消': 'Batch print cancelled', '报告生成': 'Report Generation', '报告类型': 'Report Type', '提示': 'Notice', '搜索': 'Search', '操作符': 'Operator', '数据起始行': 'Data Start Row', '新增': 'New', '无可打印的编号': 'No serial numbers to print', '是': 'Yes', '最大保留数量:': 'Max Recent Files:', '最近文件': 'Recent Files', '材质报告': 'Material Report', '条记录': 'record(s)', '查询': 'Query', '检验标准': 'Inspection Standard', '模板': 'Template', '正在打印': 'Printing', '浏览...': 'Browse...', '添加条件': 'Add Condition', '清除历史': 'Clear History', '清除条件': 'Clear Conditions', '温度': 'Temperature', '生成': 'Generate', '生成 PDF': 'Generate PDF', '生成完成': 'Generation Completed', '生成扫描件': 'Generate Scans', '生成报告': 'Generate Reports', '界面': 'Interface', '确定': 'OK', '确定要将所有设置恢复为默认值吗?\n此操作不会保存,需点击「保存设置」生效。': "Are you sure you want to restore all settings to defaults?\nThis will not save automatically, click 'Save Settings' to apply.", '确认': 'Confirm', '确认恢复': 'Confirm Restore', '确认批量打印': 'Confirm Batch Print', '空列表': 'empty list', '空字符串': 'empty string', '简体中文': 'Simplified Chinese', '粗体': 'Bold', '系统级打印配置 (来自 config.yaml,只读)': 'System Print Config (from config.yaml, read-only)', '系统设置': 'Settings', '纸张尺寸:': 'Paper Size:', '结束编号': 'End Serial', '编号模式': 'Serial Number Mode', '自动保存的时间间隔,仅在「启用自动保存」开启时生效': "Auto-save time interval, only effective when 'Enable Auto Save' is on", '自动保存间隔:': 'Auto Save Interval:', '自动生成': 'Auto Generate', '节点': 'Node', '表头行': 'Header Row', '覆盖前确认': 'Confirm Before Overwrite', '规格': 'Specification', '警告': 'Warning', '设置已保存到 userconfig.yaml': 'Settings saved to userconfig.yaml', '试压报告': 'Pressure Test Report', '语言': 'Language', '语言:': 'Language:', '起始编号': 'Start Serial', '跳过': 'Skipped', '跳过行': 'Skip Rows', '输出目录': 'Output Directory', '进度': 'Progress', '选择文件': 'Select File', '选择目录': 'Select Directory', '通用': 'General', '重复跳过': 'Duplicates Skipped', '重置': 'Reset', '错误': 'Error', '项': ' items', '预览': 'Preview', '高级筛选': 'Advanced Filter', '默认份数:': 'Default Copies:', '默认打印机:': 'Default Printer:', '🏭 CertFlow': '🏭 CertFlow', '📄 报告生成': '📄 Generate Reports', '📋 以下为 config.yaml 全部配置节点的只读展示,修改请直接编辑 config.yaml 文件后重启。': '📋 Read-only view of all config.yaml nodes. Edit the config.yaml file directly and restart to apply changes.', '📋 计划导入': '📋 Import Plans', '📋 配置总览': '📋 Config Overview', '📜 打印历史': '📜 Print History', '📸 扫描件生成': '📸 Generate Scans', '🔍 查询与补充': '🔍 Query & Supplement', '🔧 打印机物理偏移 (mm) 用户可调,保存到 userconfig.yaml': '🔧 Printer Physical Offset (mm) adjustable, saved to userconfig.yaml', '🖨 打印合格证': '🖨 Print Certificates', '🖨️ 打印设置': '🖨️ Print Settings'}
property current_language: str

当前语言

tr(text)[源代码]

翻译文本

参数:

text (str) -- 源文本(简体中文)

返回:

翻译后的文本;若当前为中文或找不到翻译则返回原文

返回类型:

str

staticMetaObject = PySide6.QtCore.QMetaObject("I18nManager" inherits "QObject": Methods:   #4 type=Signal, signature=language_changed(QString), parameters=QString )
switch_language(language)[源代码]

切换应用语言

参数:

language (str) -- 语言代码,可选 "zh_CN" 或 "en_US"

返回:

切换成功时发出 language_changed 信号

返回类型:

None