Merge branch 'feature/intelligent-polish-and-personal-dict' into main
Resolved real conflicts introduced by translation-polish-2 (#3) and
docs refresh (#4) being merged to main during development:
- OSGKeyboardShared/Models/ProviderConfig.swift
Add polishIntensity field alongside translationTargetLocaleId /
polishScenarioId / handednessPreference. Both new fields coexist.
- OSGKeyboardShared/Services/AppGroupStore.swift
Keep main's translation setters; add polishIntensity setter,
detectedAppContext setter, and personalDictionary getter/setter.
- OSGKeyboardShared/Services/PolishingService.swift
Merge v0.2.1 translate-and-polish path with v0.3.0 context-aware
intelligent prompt. New polish() entry point accepts both modes;
translation mode still uses TranslationPrompt, polish mode now
uses buildPrompt(for:context:).
- OSGKeyboard/Views/SettingsView.swift
Compose localEngineSettingsSection (main) with polishIntensitySection,
languageAndModelsSection, systemPromptLinkSection, personalDictionaryLinkSection (feature).
- OSGKeyboardShared/{en,zh-Hans}.lproj/Shared.strings
Concat scenario keys + polish intensity / app context / dictionary keys.
Auto-merged without conflict:
- AppGroupStore new methods (localASRBackend, etc.)
- FlowSessionManager, KeyboardViewController (auto-merged)
- MaterialIcon, HistoryView (auto-merged, my icons added on top)
Co-authored-by: Mavis <Mavis@hkgood.dev>