* Fix graceful error handling for JSON encoding failures in LiveView (Closes #97)
Wrap Lotus.JSON.encode! calls with safe encoding in ResultsComponent,
CardComponent, and VegaSpecBuilder to render user-friendly error messages
instead of crashing the LiveView process. Use Lotus.Normalizer for raw
database value normalization.
* Bump version to 0.14.4
* Address PR review: add logging, align error messages, rename helper, add tests
- Rename safe_json_encode! to safe_json_encode_or_empty (no misleading bang)
- Add Logger.warning on encoding failures for production diagnostics
- Align chart error message between CardComponent and ResultsComponent
- Extract and merge gettext strings, add French translations
- Add unit tests for safe_json_encode/1 and safe_json_encode_or_empty/1