fix: use UI language setting in prompt suggestions#278
Conversation
The prompt_suggestions_system.j2 template contained Chinese examples and an instruction to 'Match the user's language'. This caused the model to consistently output Chinese suggestions because all few-shot examples were in Chinese. This change: 1. Reads the user's UI language from LanguageSettings 2. Passes it to the prompt template via a 'language' variable 3. Replaces all Chinese example queries with English equivalents Fixes: AI inline suggestions ignoring UI language preference
zerx-lab
left a comment
There was a problem hiding this comment.
(详见 inline comments 和下方总结 comment)
— 由 Claude Routine 自动生成;如需复评请 @ 维护者人工触发。
Generated by Claude Code
| let system = render("prompt_suggestions_system.j2", context! {}); | ||
| let language = *LanguageSettings::as_ref(app).language; | ||
| let language_str = match language { | ||
| Language::System => "English".to_string(), |
There was a problem hiding this comment.
Question: Language::System 映射到 "English" 是否正确?
Language::System 的含义是「跟随操作系统语言」,如果用户的操作系统设置为日语或中文,他们会期待提示语言与系统语言一致。这里将其硬编码为 "English" 会导致:系统语言为中文 + 应用选择 Language::System 的用户,在此 PR 修复后反而会得到英文建议。
PR body 里提到「与 app 的 i18n fallback 行为一致」——但 i18n fallback 只是 UI 文本的兜底逻辑,不代表应该对 AI 提示也做同样处理。
建议:如果 LanguageSettings 提供了「解析后的实际语言」(而不只是原始枚举值),可以在此处用它;否则至少加一条注释说明这是已知的近似处理,并在 Language::System 下附上一个 TODO。
Generated by Claude Code
| let language = *LanguageSettings::as_ref(app).language; | ||
| let language_str = match language { | ||
| Language::System => "English".to_string(), | ||
| _ => language.to_string(), |
There was a problem hiding this comment.
Question: language.to_string() 会产生什么字符串?
Language::SimplifiedChinese 和 Language::Japanese 的 Display 实现会输出什么?如果是 "SimplifiedChinese" 或 Rust 枚举名,模型大概率无法识别。如果是 "Simplified Chinese" 或 "Japanese" 之类的自然语言描述则没问题。
建议确认 Language 的 Display impl,或用显式的 match 替换 _ 通配,把每个 variant 映射到模型能理解的字符串(如 "Simplified Chinese" / "Japanese"),而不是依赖 to_string() 的隐式行为。
Generated by Claude Code
Review 总结整体判断:Comment(需确认两处问题后可合并)。改动方向正确——将 另注:PR #277 对同一 issue 做了几乎相同的修复,建议维护者确认只合并其中一个。 阻塞问题无强阻塞,但建议合并前确认:
建议
看起来不错的地方
— 由 Claude Routine 自动生成;如需复评请 @ 维护者人工触发。 Generated by Claude Code |
This PR fixes the AI inline suggestions ignoring the user's UI language setting.
Problem:
prompt_suggestions_system.j2template contained Chinese examples and an ambiguous instruction toMatch the user's language.Changes:
LanguageSettingsand pass it to the prompt template via alanguagevariable.Respond in {{ language }}.directive.Fixes: #191