mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-02-08 16:24:20 +01:00
♻️ Bazaar uses a map to replace the i18n struct (#16960)
- package.go:DisplayName/Description/Readme 改为 map[string]string,统一 getPreferredLocaleString - bazzar.go:搜索匹配适配 LocaleStrings,抽出 packageContainsKeyword - bazaar.ts:keyword 仅在有值时传入 API - appearance:主题「默认主题」与 displayName 改为多语言 key 与 map 取值
This commit is contained in:
parent
cc37ec4030
commit
9642f486bd
19 changed files with 127 additions and 388 deletions
|
|
@ -132,25 +132,18 @@ func loadThemes() {
|
|||
modes := themeConf.Modes
|
||||
for _, mode := range modes {
|
||||
t := &conf.AppearanceTheme{Name: name}
|
||||
if "zh_CN" == util.Lang {
|
||||
if "midnight" == name {
|
||||
t.Label = name + "(默认主题)"
|
||||
} else if "daylight" == name {
|
||||
t.Label = name + "(默认主题)"
|
||||
} else {
|
||||
if nil != themeConf.DisplayName && "" != themeConf.DisplayName.ZhCN && name != themeConf.DisplayName.ZhCN {
|
||||
t.Label = themeConf.DisplayName.ZhCN + "(" + name + ")"
|
||||
} else {
|
||||
t.Label = name
|
||||
}
|
||||
}
|
||||
if "midnight" == name || "daylight" == name {
|
||||
t.Label = name + Conf.Language(281)
|
||||
} else {
|
||||
if "midnight" == name {
|
||||
t.Label = name + " (Default)"
|
||||
} else if "daylight" == name {
|
||||
t.Label = name + " (Default)"
|
||||
} else {
|
||||
t.Label = name
|
||||
t.Label = name
|
||||
if len(themeConf.DisplayName) > 0 {
|
||||
v := strings.TrimSpace(themeConf.DisplayName[util.Lang])
|
||||
if "" == v {
|
||||
v = strings.TrimSpace(themeConf.DisplayName["default"])
|
||||
}
|
||||
if "" != v && name != v {
|
||||
t.Label = v + " (" + name + ")"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -514,34 +514,41 @@ func matchPackage(keywords []string, pkg *bazaar.Package) bool {
|
|||
return true
|
||||
}
|
||||
|
||||
if nil == pkg || nil == pkg.DisplayName || nil == pkg.Description {
|
||||
if nil == pkg {
|
||||
return false
|
||||
}
|
||||
|
||||
hits := map[string]bool{}
|
||||
for _, keyword := range keywords {
|
||||
if strings.Contains(strings.ToLower(pkg.DisplayName.Default), keyword) ||
|
||||
strings.Contains(strings.ToLower(pkg.DisplayName.ZhCN), keyword) ||
|
||||
strings.Contains(strings.ToLower(pkg.DisplayName.ZhCHT), keyword) ||
|
||||
strings.Contains(strings.ToLower(pkg.DisplayName.EnUS), keyword) ||
|
||||
strings.Contains(strings.ToLower(pkg.Description.Default), keyword) ||
|
||||
strings.Contains(strings.ToLower(pkg.Description.ZhCN), keyword) ||
|
||||
strings.Contains(strings.ToLower(pkg.Description.ZhCHT), keyword) ||
|
||||
strings.Contains(strings.ToLower(pkg.Description.EnUS), keyword) ||
|
||||
strings.Contains(strings.ToLower(path.Base(pkg.RepoURL)), keyword) ||
|
||||
strings.Contains(strings.ToLower(pkg.Author), keyword) {
|
||||
hits[keyword] = true
|
||||
continue
|
||||
}
|
||||
|
||||
for _, pkgKeyword := range pkg.Keywords {
|
||||
if strings.Contains(strings.ToLower(pkgKeyword), keyword) {
|
||||
hits[keyword] = true
|
||||
break
|
||||
}
|
||||
for _, kw := range keywords {
|
||||
if !packageContainsKeyword(pkg, kw) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return len(hits) == len(keywords)
|
||||
|
||||
// 全部关键词匹配
|
||||
return true
|
||||
}
|
||||
|
||||
func packageContainsKeyword(pkg *bazaar.Package, kw string) bool {
|
||||
if strings.Contains(strings.ToLower(path.Base(pkg.RepoURL)), kw) ||
|
||||
strings.Contains(strings.ToLower(pkg.Author), kw) {
|
||||
return true
|
||||
}
|
||||
for _, s := range pkg.DisplayName {
|
||||
if strings.Contains(strings.ToLower(s), kw) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, s := range pkg.Description {
|
||||
if strings.Contains(strings.ToLower(s), kw) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, s := range pkg.Keywords {
|
||||
if strings.Contains(strings.ToLower(s), kw) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func getSearchKeywords(query string) (ret []string) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue