MCPcopy Create free account
hub / github.com/ZToolsCenter/ZTools / getLocalizedName

Function getLocalizedName

src/main/core/commandScanner/linuxScanner.ts:62–90  ·  view source on GitHub ↗

* 获取本地化的应用名称 * 优先级:Name[zh_CN] > Name[zh] > Name[en_US] > Name

(entry: DesktopEntry)

Source from the content-addressed store, hash-verified

60 * 优先级:Name[zh_CN] > Name[zh] > Name[en_US] > Name
61 */
62function getLocalizedName(entry: DesktopEntry): string {
63 // 获取系统语言代码(如 "zh_CN"、"en_US")
64 const lang = process.env.LANG || process.env.LANGUAGE || ''
65 const langCode = lang.split('.')[0] // 去掉编码部分 (UTF-8)
66 const parts = langCode.split('_')
67 const langBase = parts[0] // 只取语言部分 (zh)
68
69 // 按优先级尝试本地化名称
70 const candidates: string[] = []
71 if (langCode) {
72 candidates.push(`Name[${langCode}]`)
73 }
74 if (parts.length > 1 && parts[1]) {
75 candidates.push(`Name[${langBase}_${parts[1]}]`) // 防御性写法
76 }
77 if (langBase) {
78 candidates.push(`Name[${langBase}]`) // Name[zh]
79 }
80 candidates.push('Name') // 兜底
81
82 for (const key of candidates) {
83 const value = entry[key]
84 if (value && value.trim()) {
85 return value.trim()
86 }
87 }
88
89 return entry['Name']?.trim() || ''
90}
91
92/**
93 * 清理 Exec 字段中的 % 参数占位符(如 %f, %u, %F, %U ...)

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected