From 21a0f881fb9de395ab87a77689199a3bd70bbdc7 Mon Sep 17 00:00:00 2001 From: "zaemon.li" Date: Sat, 23 Aug 2025 09:46:02 +0800 Subject: [PATCH] added phone adaption. optimized Database record process. --- icon.png | Bin 0 -> 10451 bytes main.go | 12 +- static/goldendict-tutorial.html | 194 ++++++++++++++++++++++++++++++++ static/index.html | 124 +++++++++++++++++--- 4 files changed, 312 insertions(+), 18 deletions(-) create mode 100644 icon.png create mode 100644 static/goldendict-tutorial.html diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a85a32e7908c2df77c0af921c5e55845b6d30b86 GIT binary patch literal 10451 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 Urz`dT3o8QTq!p#A;KsrK1D?b9qyPW_ literal 0 HcmV?d00001 diff --git a/main.go b/main.go index 6c226a5..05f6863 100644 --- a/main.go +++ b/main.go @@ -118,12 +118,17 @@ func main() { } func getDefinition(word, sourceLang, targetLang string) ([]byte, error) { - wordKey := fmt.Sprintf("%s-%s:%s", sourceLang, targetLang, word) + // --- 新增:将接收到的单词统一转换为小写进行处理 --- + normalizedWord := strings.ToLower(word) + // --- 标准化结束 --- + + // 后续所有操作都使用这个标准化后的单词 + wordKey := fmt.Sprintf("%s-%s:%s", sourceLang, targetLang, normalizedWord) var cachedDefinition string err := db.QueryRow("SELECT definition FROM cache WHERE word_key = ?", wordKey).Scan(&cachedDefinition) if err == nil { - log.Printf("Cache hit from SQLite for key: %s", wordKey) + log.Printf("Cache hit for key: %s (Original: '%s')", wordKey, word) return []byte(cachedDefinition), nil } @@ -134,7 +139,8 @@ func getDefinition(word, sourceLang, targetLang string) ([]byte, error) { if !ok { return nil, fmt.Errorf("unsupported language pair: %s", promptKey) } - prompt := strings.Replace(promptTemplate, "${word}", word, -1) + // 使用标准化后的单词去填充Prompt + prompt := strings.Replace(promptTemplate, "${word}", normalizedWord, -1) requestBody, _ := json.Marshal(map[string]interface{}{"model": config.API.Model, "messages": []map[string]string{{"role": "user", "content": prompt}}}) req, _ := http.NewRequest("POST", config.API.URL, bytes.NewBuffer(requestBody)) diff --git a/static/goldendict-tutorial.html b/static/goldendict-tutorial.html new file mode 100644 index 0000000..2ed49b5 --- /dev/null +++ b/static/goldendict-tutorial.html @@ -0,0 +1,194 @@ + + + + + + GoldenDict 集成教程 - AI 词典 + + + +

如何将 AI 词典添加到 GoldenDict

+
+

通过本教程,您可以将这个强大的实时AI词典无缝集成到您本地的 GoldenDict 软件中,获得顶级的桌面端查词体验。

+ +
+
重要说明
+

GoldenDict 无法动态传递您选择的语言对。因此,您需要为您希望使用的**每一个语言对**(例如“英→汉”、“德→英”等)都单独添加一个词典条目。

+

为了简化这个过程,我们提供了下面的 **URL生成器** 和常用示例。

+
+ +
+
URL 生成器
+
+ + + + + + +
+

生成的URL (请复制):

+ + +
+
+
+ +
+
设置步骤
+
    +
  1. 打开 GoldenDict, 进入 编辑词典 (快捷键 F3)。
  2. +
  3. 点击 网站 标签页, 然后点击 添加... 按钮。
  4. +
  5. 在弹出的窗口中填写信息: +
      +
    • 启用: ✅ (务必勾选)
    • +
    • 名称: 建议使用能识别的名称, 例如 AI 词典 (英→汉)
    • +
    • 地址: 从上方的 **URL生成器** 或下方的常用示例中,复制对应的URL并粘贴到这里。
    • +
    +
  6. +
  7. 点击 确定 保存。
  8. +
  9. **重复第3、4步**为您需要的其他语言对添加更多词典。
  10. +
  11. 全部添加完毕后,点击主设置窗口的 确定 使设置生效。
  12. +
+
+ +
+
常用语言对示例
+

为方便起见,这里提供一些常用组合的URL。请根据您的服务器地址(本地或远程)进行修改。

+
    +
  • 英 → 汉: http://localhost:8080/golden-dict?source=en&target=zh&word=%GDWORD%
  • +
  • 德 → 汉: http://localhost:8080/golden-dict?source=de&target=zh&word=%GDWORD%
  • +
  • 日 → 汉: http://localhost:8080/golden-dict?source=ja&target=zh&word=%GDWORD%
  • +
  • 汉 → 英: http://localhost:8080/golden-dict?source=zh&target=en&word=%GDWORD%
  • +
  • 英 → 英 (单语): http://localhost:8080/golden-dict?source=en&target=en&word=%GDWORD%
  • +
+
+ +

完成!

+

现在,您可以在 GoldenDict 中查词了。您添加的每一个语言对都会作为一个独立的标签页显示结果。

+
+ + 返回词典主页 + + + + \ No newline at end of file diff --git a/static/index.html b/static/index.html index 1a824eb..3e063c3 100644 --- a/static/index.html +++ b/static/index.html @@ -3,27 +3,118 @@ - AI Dictionary + AI 词典 @@ -62,7 +153,10 @@
+ - - + + \ No newline at end of file