Просмотр исходного кода

fix: 实现宠物产品患者管理翻译动态切换功能 (bug 101)

- 在 BusinessZone.tsx 中根据产品类型动态选择翻译 key
- VETDROS 产品显示'宠物管理',DROS 产品显示'患者管理'
- 在中英文翻译文件中添加 animal.patient 翻译 key
- 利用 isAnimalProduct 判断条件实现自动切换

改动文件:
- src/layouts/BusinessZone.tsx
- src/assets/i18n/messages/zh.js
- src/assets/i18n/messages/en.js
- scripts/output/i18n/zh.js
- scripts/output/i18n/en.js
- package.json (版本更新: 1.11.3 -> 1.11.4)
- CHANGELOG.md
dengdx 3 недель назад
Родитель
Сommit
f6dca98155

+ 30 - 0
CHANGELOG.md

@@ -2,6 +2,36 @@
 
 本项目的所有重要变更都将记录在此文件中。
 
+## [1.11.4] - 2025-12-17 13:14
+
+### 修复 (Fixed)
+- **宠物产品患者管理翻译动态切换功能** (bug 101)
+  - 在 BusinessZone.tsx 中根据产品类型动态选择翻译 key
+  - VETDROS 产品显示"宠物管理",DROS 产品显示"患者管理"
+  - 在中英文翻译文件中添加 animal.patient 翻译 key
+  - 利用 isAnimalProduct 判断条件实现自动切换
+
+**核心改进:**
+- 产品适配性:自动根据产品类型(DROS/VETDROS)显示对应的翻译文本
+- 用户体验:宠物影像工作站显示更贴切的"宠物管理"而非"患者管理"
+- 代码可维护性:遵循现有的 animal.* 命名约定,保持翻译体系一致性
+- 国际化支持:同步更新中英文翻译文件
+
+**技术实现:**
+- 使用三元表达式动态选择翻译 key:`isAnimalProduct ? "animal.patient" : "patient"`
+- 在 FormattedMessage 组件中应用动态 id 属性
+- 扩展翻译文件:zh.js 添加"宠物管理",en.js 添加"Animal Management"
+
+**改动文件:**
+- src/layouts/BusinessZone.tsx
+- src/assets/i18n/messages/zh.js
+- src/assets/i18n/messages/en.js
+- scripts/output/i18n/zh.js
+- scripts/output/i18n/en.js
+- package.json (版本更新: 1.11.3 -> 1.11.4)
+
+---
+
 ## [1.11.3] - 2025-12-17 10:54
 
 ### 修复 (Fixed)

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "zsis",
-  "version": "1.11.3",
+  "version": "1.11.4",
   "private": true,
   "description": "医学成像系统",
   "main": "main.js",

+ 1 - 0
scripts/output/i18n/en.js

@@ -2,6 +2,7 @@
   "greeting": "Hello, world!",
   "name": "John Doe",
   "patient": "Patient Management",
+  "animal.patient": "Animal Management",
   "register": "Register",
   "tasklist": "Task List",
   "historylist": "History List",

+ 1 - 0
scripts/output/i18n/zh.js

@@ -2,6 +2,7 @@
   "greeting": "你好,世界!",
   "name": "张三",
   "patient": "患者管理",
+  "animal.patient": "宠物管理",
   "register": "注册",
   "tasklist": "任务清单",
   "historylist": "历史清单",

+ 1 - 0
src/assets/i18n/messages/en.js

@@ -2,6 +2,7 @@ export default {
   "greeting": "Hello, world!",
   "name": "John Doe",
   "patient": "Patient Management",
+  "animal.patient": "Animal Management",
   "register": "Register",
   "tasklist": "Task List",
   "historylist": "History List",

+ 1 - 0
src/assets/i18n/messages/zh.js

@@ -2,6 +2,7 @@ export default {
   "greeting": "你好,世界!",
   "name": "张三",
   "patient": "患者管理",
+  "animal.patient": "宠物管理",
   "register": "注册",
   "tasklist": "任务清单",
   "historylist": "历史清单",

+ 1 - 1
src/layouts/BusinessZone.tsx

@@ -22,7 +22,7 @@ function useItems(btnAvailability: Record<string, boolean>, productName: 'DROS'
       key: 'patient_management',
       label: (
         <FormattedMessage
-          id="patient"
+          id={isAnimalProduct ? "animal.patient" : "patient"}
           defaultMessage={'语言包中没有定义patient的翻译文本'}
         />
       ),