From 6ceb291fa6402b70a4eb6734f5e6f9e8afa8a344 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Mon, 25 May 2026 05:10:36 +0800
Subject: [PATCH] Allow latin app name romanized fuzzy search

---
 Apptag/QuickSearch.swift |   11 +++++------
 1 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/Apptag/QuickSearch.swift b/Apptag/QuickSearch.swift
index 6056150..d53f79d 100644
--- a/Apptag/QuickSearch.swift
+++ b/Apptag/QuickSearch.swift
@@ -379,15 +379,14 @@
     ) -> [QuickSearchIndexedField] {
         let names = uniqueOrdered([appName] + localizedNames)
         let nameFields = names.map {
-            let allowsRomanizedFuzzy = containsNonLatinLetter($0)
             return QuickSearchIndexedField(
                 kind: .name,
                 text: $0,
                 normalized: normalizeField($0),
                 acronym: acronym(for: $0),
-                pinyinCandidates: pinyinCandidates(for: $0),
-                allowPinyinSubstring: allowsRomanizedFuzzy,
-                allowPinyinFuzzySubsequence: allowsRomanizedFuzzy
+                pinyinCandidates: pinyinCandidates(for: $0, includeLatin: true),
+                allowPinyinSubstring: true,
+                allowPinyinFuzzySubsequence: true
             )
         }
         let tagFields = tagNames.map {
@@ -605,8 +604,8 @@
             .lowercased()
     }
 
-    private static func pinyinCandidates(for value: String) -> [String] {
-        guard containsNonLatinLetter(value) else { return [] }
+    private static func pinyinCandidates(for value: String, includeLatin: Bool = false) -> [String] {
+        guard includeLatin || containsNonLatinLetter(value) else { return [] }
         let mutable = NSMutableString(string: value)
         CFStringTransform(mutable, nil, kCFStringTransformToLatin, false)
         CFStringTransform(mutable, nil, kCFStringTransformStripCombiningMarks, false)

--
Gitblit v1.9.3