多语言环境下Search Doctype Bar需支持英文Doctype名称搜索
解决方案:多语言环境下用英文Doctype名称搜索
1. 修改搜索匹配逻辑
直接调整搜索栏的匹配规则,让它同时识别原始英文Doctype名称和当前语言的翻译名称:
- 前端处理:如果搜索逻辑在前端,修改过滤函数同时对比两个字段(以JS为例):
const filteredDoctypes = doctypes.filter(item => { const searchTerm = inputValue.toLowerCase(); return item.name.toLowerCase().includes(searchTerm) || item.label.toLowerCase().includes(searchTerm); });
- 后端处理:如果是接口驱动的搜索,调整查询语句同时匹配原始名称和翻译字段(以SQL为例):
SELECT * FROM doctypes WHERE LOWER(name) LIKE '%{search_term}%' OR LOWER(translated_label) LIKE '%{search_term}%';
2. 给Doctype加别名支持
在系统的Doctype配置里新增aliases字段,把英文名称设为默认别名,搜索时同时匹配别名和当前语言的显示名称:
- 配置示例:
{ "doctype": "Customer", "label": "Client", // 法语翻译 "aliases": ["Customer"] }
3. 优化搜索结果排序(可选)
如果需要让英文名称的匹配结果更靠前,可以给搜索结果加排序规则:
filteredDoctypes.sort((a, b) => { const aMatchesName = a.name.toLowerCase().includes(searchTerm); const bMatchesName = b.name.toLowerCase().includes(searchTerm); return bMatchesName - aMatchesName; // 匹配英文名称的结果排前面 });
4. 临时应急方案
如果暂时没法改代码,可以给用户加个快速切换到英文的快捷键/按钮,搜完再切回原语言——但这只是权宜之计,不如前面的方案彻底。
内容的提问来源于stack exchange,提问作者Andy Longrée
相关产品推荐
相关产品推荐

