Releases: hayek/HelpView
Releases · hayek/HelpView
1.3.0
Comprehensive code audit fixes and test coverage improvements - Fix search race condition with task cancellation and query validation - Create fresh AI session per query to prevent conversation history accumulation - Fall back to text-based search when AI generation fails (model not downloaded) - Replace NSError with typed AIHelperError enum (LocalizedError) - Add bundle parameter to public API for app extension support - Add visionOS platform support to all #if os() checks - Fix clipboard copy on visionOS, cancel feedback task on disappear - Replace print() with os.Logger throughout FAQLoader - Change FAQLoader from class to enum, deduplicate load() logic - Use stable Topic.id derived from title instead of random UUID - Cache markdown parsing in @State, fix duplicate MarkdownBlock IDs - Cache all syntax highlighter regex as static properties - Extract common highlightWithRegex helper (~150 lines reduced) - Fix isLoadingAI not reset in clearSearch() and on task cancellation - Fix sorting comparator strict weak ordering violation - Add accessibility labels to expand/collapse and copy buttons - Mark public struct properties as private, document CodingKeys - Filter single-char search terms, use proper substring counting - Add 29 new tests (72 -> 101): localization, markdown parsing, malformed data, FAQCollection topics, search edge cases
1.2.0
Localization Support
HelpView now supports full localization of FAQ content using Xcode String Catalogs (.xcstrings).
New Features
FAQ Content Localization
- Add optional key field to FAQs for stable translation keys
- Translations use pattern: faq.{key}.title, faq.{key}.details, topic.{slug}
- Missing translations automatically fall back to inline English text
- Works with both JSON and plist FAQ formats
Custom Localization Files
- New localization parameter on HelpViewButton and HelpContentView
- Specify a custom .xcstrings file instead of default Localizable.xcstrings
// Default
HelpViewButton(named: "app_help")
// Custom localization file
HelpViewButton(named: "app_help", localization: "HelpStrings")
Pre-translated SDK UI
- 9 UI strings (search placeholders, buttons, labels) translated into 31 languages
- Languages: Arabic, Chinese (Simplified/Traditional), Czech, Danish, Dutch, English, Finnish, French, German, Greek, Hebrew, Hindi, Hungarian, Indonesian, Italian, Japanese, Korean, Malay, Norwegian, Polish, Portuguese (BR/PT), Romanian, Russian, Spanish, Swedish, Thai, Turkish, Ukrainian, Vietnamese
Example App
- Added Arabic and French translations demonstrating localization workflow
Migration
No breaking changes. Existing integrations work without modification. To add localization:
- Add key field to FAQs you want to translate
- Create translations in your .xcstrings file
- FAQs without keys continue to display inline English text