""" FormData 国际化翻译表 - 简化版 """ TRANSLATIONS = { "zh_CN": { "operation": "操作", "actions.add": "新增", "actions.edit": "编辑", "actions.delete": "删除", "actions.save": "保存", "actions.cancel": "取消", "actions.confirm": "确认", "actions.search": "搜索", "actions.reset": "重置", "table.User": "用户", "table.UserAvatar": "用户头像", "table.EphemeralTokens": "临时令牌", "table.Tenant": "租户", "table.Company": "公司", "table.Dept": "部门", "table.Role": "角色", "table.Permission": "权限", "table.UserRole": "用户-角色", "table.RoleDept": "角色-部门", "table.WorkOrder": "工单", "table.Menu": "菜单", "table.TestForm": "测试表单", "User.UserUUID": "用户UUID", "User.UserName": "用户名", "User.UserPassword": "密码", "User.UserPositionStatus": "职位状态", "User.UserPersonalSignature": "个人签名", "User.UserEmail": "邮箱", "User.UserEmailVerify": "邮箱验证", "User.UserAccountLicense": "账户许可", "User.UserGender": "性别", "User.UserTele": "电话", "User.UserCreateTime": "创建时间", "User.UserLastLoginDate": "最后登录", "UserAvatar.UserUUID": "用户UUID", "UserAvatar.UserAvatar": "头像数据", "UserAvatar.AvatarUploadTime": "上传时间", "UserAvatar.AvatarFileType": "文件类型", "EphemeralTokens.ELTUUID": "令牌UUID", "EphemeralTokens.ELTUserUUID": "用户UUID", "EphemeralTokens.ELTCreatime": "创建时间", "EphemeralTokens.ELTEndTime": "过期时间", "EphemeralTokens.ELTType": "令牌类型", "EphemeralTokens.ELTAllowIP": "允许IP", "EphemeralTokens.ELTStatus": "状态", "Tenant.TenantUUID": "租户UUID", "Tenant.TenantName": "租户名称", "Tenant.TenantCode": "租户编码", "Tenant.TenantStatus": "租户状态", "Tenant.TenantExpireTime": "过期时间", "Tenant.CreateTime": "创建时间", "Company.CompanyUUID": "公司UUID", "Company.TenantUUID": "租户UUID", "Company.ParentCompanyUUID": "上级公司UUID", "Company.CompanyName": "公司名称", "Company.CompanyShort": "公司简称", "Company.CompanyStatus": "公司状态", "Company.CreateTime": "创建时间", "Dept.DeptUUID": "部门UUID", "Dept.CompanyUUID": "公司UUID", "Dept.DeptName": "部门名称", "Dept.DeptShort": "部门简称", "Dept.DeptStatus": "部门状态", "Dept.CreateTime": "创建时间", "Role.RoleUUID": "角色UUID", "Role.CompanyUUID": "公司UUID", "Role.RoleName": "角色名称", "Role.RoleType": "角色类型", "Role.RoleStatus": "角色状态", "Role.CreateTime": "创建时间", "Permission.PermUUID": "权限UUID", "Permission.PermCode": "权限键", "Permission.RoleUUID": "角色", "Permission.PermStatus": "是否启用", "Permission.PermName": "名称", "Permission.PermDesc": "内容", "UserRole.UserUUID": "用户名称", "UserRole.RoleUUID": "角色名称", "RoleDept.RoleUUID": "角色名称", "RoleDept.DeptUUID": "部门名称", "WorkOrder.OrderUUID": "工单UUID", "WorkOrder.Title": "标题", "WorkOrder.Description": "描述", "WorkOrder.Category": "分类", "WorkOrder.Priority": "优先级", "WorkOrder.Status": "状态", "WorkOrder.CreatorUUID": "提交人", "WorkOrder.AssigneeUUID": "处理人", "WorkOrder.Resolution": "处理说明", "WorkOrder.CreateTime": "提交时间", "WorkOrder.UpdateTime": "更新时间", "WorkOrder.CloseTime": "关闭时间", "WorkOrder.Category.bug": "缺陷", "WorkOrder.Category.feature": "功能", "WorkOrder.Category.question": "疑问", "WorkOrder.Category.account": "账号", "WorkOrder.Category.other": "其他", "WorkOrder.Priority.0": "低", "WorkOrder.Priority.1": "中", "WorkOrder.Priority.2": "高", "WorkOrder.Priority.3": "紧急", "WorkOrder.Status.-1": "已拒绝", "WorkOrder.Status.0": "待处理", "WorkOrder.Status.1": "处理中", "WorkOrder.Status.2": "已解决", "WorkOrder.Status.3": "已关闭", "Menu.MenuUUID": "菜单UUID", "Menu.CompanyUUID": "公司", "Menu.ParentMenuUUID": "上级菜单", "Menu.MenuName": "标识名", "Menu.MenuTitle": "显示名称", "Menu.MenuIcon": "图标", "Menu.MenuLink": "链接", "Menu.MenuSort": "排序", "Menu.PermissionLevel": "权限等级", "Menu.PermissionAttr": "权限字段", "Menu.MenuStatus": "状态", "Menu.MenuType": "类型", "Menu.MenuStatus.0": "禁用", "Menu.MenuStatus.1": "启用", "Menu.MenuType.0": "目录", "Menu.MenuType.1": "页面", "TestForm.title": "测试表单", "TestForm.id": "编号", "TestForm.username": "用户名", "TestForm.email": "邮箱", "TestForm.phone": "手机号", "TestForm.gender": "性别", "TestForm.age": "年龄", "TestForm.height": "身高", "TestForm.weight": "体重", "TestForm.is_active": "是否激活", "TestForm.join_time": "加入时间", "TestForm.last_login_time": "最后登录时间", "TestForm.birthday": "生日", "TestForm.address": "地址", "TestForm.avatar_url": "头像URL", "TestForm.status": "状态", "TestForm.ext_info": "扩展信息", "TestForm.gender.male": "男", "TestForm.gender.female": "女", "TestForm.gender.other": "其他", "TestForm.status.1": "正常", "TestForm.status.2": "禁用", "TestForm.status.3": "待审核", }, "en_US": { "operation": "Operation", "actions.add": "Add", "actions.edit": "Edit", "actions.delete": "Delete", "actions.save": "Save", "actions.cancel": "Cancel", "actions.confirm": "Confirm", "actions.search": "Search", "actions.reset": "Reset", "table.User": "User", "table.UserAvatar": "User Avatar", "table.EphemeralTokens": "Ephemeral Tokens", "table.Tenant": "Tenant", "table.Company": "Company", "table.Dept": "Department", "table.Role": "Role", "table.Permission": "Permission", "table.UserRole": "User-Role", "table.RoleDept": "Role-Dept", "table.WorkOrder": "Work Order", "table.Menu": "Menu", "table.TestForm": "Test Form", "User.UserUUID": "User UUID", "User.UserName": "Username", "User.UserPassword": "Password", "User.UserPositionStatus": "Position Status", "User.UserPersonalSignature": "Signature", "User.UserEmail": "Email", "User.UserEmailVerify": "Email Verified", "User.UserAccountLicense": "Account License", "User.UserGender": "Gender", "User.UserTele": "Phone", "User.UserCreateTime": "Create Time", "User.UserLastLoginDate": "Last Login", "UserAvatar.UserUUID": "User UUID", "UserAvatar.UserAvatar": "Avatar Data", "UserAvatar.AvatarUploadTime": "Upload Time", "UserAvatar.AvatarFileType": "File Type", "EphemeralTokens.ELTUUID": "Token UUID", "EphemeralTokens.ELTUserUUID": "User UUID", "EphemeralTokens.ELTCreatime": "Create Time", "EphemeralTokens.ELTEndTime": "Expire Time", "EphemeralTokens.ELTType": "Token Type", "EphemeralTokens.ELTAllowIP": "Allowed IPs", "EphemeralTokens.ELTStatus": "Status", "Tenant.TenantUUID": "Tenant UUID", "Tenant.TenantName": "Tenant Name", "Tenant.TenantCode": "Tenant Code", "Tenant.TenantStatus": "Tenant Status", "Tenant.TenantExpireTime": "Expire Time", "Tenant.CreateTime": "Create Time", "Company.CompanyUUID": "Company UUID", "Company.TenantUUID": "Tenant UUID", "Company.ParentCompanyUUID": "Parent Company UUID", "Company.CompanyName": "Company Name", "Company.CompanyShort": "Company Short", "Company.CompanyStatus": "Company Status", "Company.CreateTime": "Create Time", "Dept.DeptUUID": "Dept UUID", "Dept.CompanyUUID": "Company UUID", "Dept.DeptName": "Dept Name", "Dept.DeptShort": "Dept Short", "Dept.DeptStatus": "Dept Status", "Dept.CreateTime": "Create Time", "Role.RoleUUID": "Role UUID", "Role.CompanyUUID": "Company UUID", "Role.RoleName": "Role Name", "Role.RoleType": "Role Type", "Role.RoleStatus": "Role Status", "Role.CreateTime": "Create Time", "Permission.PermUUID": "Permission UUID", "Permission.PermCode": "Permission Key", "Permission.RoleUUID": "Role", "Permission.PermStatus": "Enabled", "Permission.PermName": "Name", "Permission.PermDesc": "Content", "UserRole.UserUUID": "User Name", "UserRole.RoleUUID": "Role Name", "RoleDept.RoleUUID": "Role Name", "RoleDept.DeptUUID": "Dept Name", "WorkOrder.OrderUUID": "Order UUID", "WorkOrder.Title": "Title", "WorkOrder.Description": "Description", "WorkOrder.Category": "Category", "WorkOrder.Priority": "Priority", "WorkOrder.Status": "Status", "WorkOrder.CreatorUUID": "Creator", "WorkOrder.AssigneeUUID": "Assignee", "WorkOrder.Resolution": "Resolution", "WorkOrder.CreateTime": "Create Time", "WorkOrder.UpdateTime": "Update Time", "WorkOrder.CloseTime": "Close Time", "WorkOrder.Category.bug": "Bug", "WorkOrder.Category.feature": "Feature", "WorkOrder.Category.question": "Question", "WorkOrder.Category.account": "Account", "WorkOrder.Category.other": "Other", "WorkOrder.Priority.0": "Low", "WorkOrder.Priority.1": "Medium", "WorkOrder.Priority.2": "High", "WorkOrder.Priority.3": "Urgent", "WorkOrder.Status.-1": "Rejected", "WorkOrder.Status.0": "Pending", "WorkOrder.Status.1": "In Progress", "WorkOrder.Status.2": "Resolved", "WorkOrder.Status.3": "Closed", "Menu.MenuUUID": "Menu UUID", "Menu.CompanyUUID": "Company", "Menu.ParentMenuUUID": "Parent Menu", "Menu.MenuName": "Name", "Menu.MenuTitle": "Display Title", "Menu.MenuIcon": "Icon", "Menu.MenuLink": "Link", "Menu.MenuSort": "Sort", "Menu.PermissionLevel": "Permission Level", "Menu.PermissionAttr": "Permission Attr", "Menu.MenuStatus": "Status", "Menu.MenuType": "Type", "Menu.MenuStatus.0": "Disabled", "Menu.MenuStatus.1": "Active", "Menu.MenuType.0": "Directory", "Menu.MenuType.1": "Page", "TestForm.title": "Test Form", "TestForm.id": "ID", "TestForm.username": "Username", "TestForm.email": "Email", "TestForm.phone": "Phone", "TestForm.gender": "Gender", "TestForm.age": "Age", "TestForm.height": "Height", "TestForm.weight": "Weight", "TestForm.is_active": "Active", "TestForm.join_time": "Join Time", "TestForm.last_login_time": "Last Login", "TestForm.birthday": "Birthday", "TestForm.address": "Address", "TestForm.avatar_url": "Avatar URL", "TestForm.status": "Status", "TestForm.ext_info": "Extra Info", "TestForm.gender.male": "Male", "TestForm.gender.female": "Female", "TestForm.gender.other": "Other", "TestForm.status.1": "Active", "TestForm.status.2": "Disabled", "TestForm.status.3": "Pending", }, } def get_translation(table_name, lang="zh_CN"): """获取翻译字典""" return TRANSLATIONS.get(lang, TRANSLATIONS.get("zh_CN", {})) def translate(key, lang="zh_CN"): """翻译单个键""" trans = get_translation("", lang) return trans.get(key, key) def translate_field(table_name, field_name, lang="zh_CN"): """翻译字段标题""" key = f"{table_name}.{field_name}" trans = get_translation(table_name, lang) return trans.get(key, field_name) def translate_option(table_name, field_name, option_value, lang="zh_CN"): """翻译下拉选项""" key = f"{table_name}.{field_name}.{option_value}" trans = get_translation(table_name, lang) return trans.get(key, option_value) def get_current_lang(): """获取当前语言""" from flask import request, session return session.get("lang", request.headers.get("Accept-Language", "zh_CN").split(",")[0])