57cd0f974f
Update BrowserNotifyModal.tsx to use Localization component ( #4444 )
...
* Initial plan
* Update BrowserNotifyModal.tsx to use Localization component
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Organize BrowserNotifyModal localization keys into namespaces
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* chore: update extracted translations
* Update web/components/modals/BrowserNotifyModal/BrowserNotifyModal.tsx
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update web/i18n/en/translation_old.json
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
Co-authored-by: Owncast default web localizations <owncast@owncast.online >
Co-authored-by: Gabe Kangas <gabek@real-ity.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-07-30 13:02:03 -07:00
59b905649e
Add pluralization support to Translation component ( #4441 )
...
* Initial plan
* Add pluralization support to Translation component with comprehensive tests
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Javascript formatting autofixes
* Update web/tests/translation.test.tsx
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update web/components/ui/Translation/Translation.tsx
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* fix: linter warning
* Simplify pluralization logic: use original key for plural, only _one for singular
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* feat(i18n): fix support for nested namespace string and key extraction
* chore: update extracted translations
* fix(i18n): fix linter warnings in extraction script
* Update web/scripts/i18n-extract.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* feat(i18n): sort translation keys
* fix(i18n): fix linter warnings
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
Co-authored-by: Owncast <owncast@owncast.online >
Co-authored-by: Gabe Kangas <gabek@real-ity.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-07-13 17:34:06 -07:00
eafcf9148c
Update EditInstanceDetails admin component to support localization ( #4439 )
...
* Initial plan
* Update EditInstanceDetails component to support localization
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* chore: update extracted translations
* Update web/types/localization.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Add EditInstanceDetails namespace to localization keys
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* chore: update extracted translations
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
Co-authored-by: Owncast default web localizations <owncast@owncast.online >
Co-authored-by: Gabe Kangas <gabek@real-ity.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-07-13 13:34:30 -07:00
29b5100114
Create custom Translation component for better i18n handling ( #4431 )
...
* Initial plan
* Implement Translation component with Storybook stories
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Add Jest test for Translation component and demonstrate ?lang=de functionality
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Javascript formatting autofixes
* Create centralized type-safe localization system
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Add @testing-library/react to Translation component tests
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Fix code formatting errors with prettier and eslint
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Revert "Fix code formatting errors with prettier and eslint"
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* fix(js): eslinter errors
* fix(js): unused code warnings
* fix(js): fix additional warnings
* Update Emoji admin page to use new Translation component
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Organize localization keys by logical sections (Frontend, Admin, Common, Testing)
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Organize localization keys by TypeScript namespaces
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Javascript formatting autofixes
* feat(js): add support for default translated text
* chore: add default lang translations on commit
* fix(js): unused code warnings
* Update OfflineBanner component to use new Translation component
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* fix(js): fix localization extraction job
* chore(js): remove ts-node cli
* fix(css): fix css warning
* feat(js): add some additional translation strings via component
* chore: update extracted translations
* test: add tests for Translation component defaultText and fallback behavior
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* chore: update extracted translations
* Javascript formatting autofixes
* chore: call out new Translation component
* fix: linter warning
* chore: updated instructions
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
Co-authored-by: Owncast <owncast@owncast.online >
Co-authored-by: Gabe Kangas <gabek@real-ity.com >
2025-07-13 02:21:46 -07:00
149d80a07d
Inline chat moderation request returning 500s ( #4412 )
...
* Initial plan
* Initial analysis of inline chat moderation 500 error issue
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Fix inline chat moderation 500 errors by supporting Authorization header tokens
- Modified RequireUserModerationScopeAccesstoken middleware to check both Authorization header (Bearer tokens) and URL query parameters
- This fixes the issue where inline chat moderation from the web UI was failing with 500 errors
- Maintains backward compatibility with existing code that uses query parameter tokens
- The fix aligns the chat endpoint behavior with the integrations endpoint which already supported Bearer tokens
Addresses the wiring issue between OpenAPI spec and API implementation identified in issue comments.
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Fix inline chat moderation 500 errors by adding nil pointer checks
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Fix nil pointer vulnerabilities across all OpenAPI endpoints
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
2025-07-04 23:57:03 -07:00
07786682b0
Fix error message styling consistency in browser notification modal ( #4418 )
...
* Initial plan
* Update BrowserNotifyModal to use Alert component for error styling consistency
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* chore: update copilot instructions
* chore: update copilot instructions
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
Co-authored-by: Gabe Kangas <gabek@real-ity.com >
2025-07-04 22:42:40 -07:00
5950db7abd
Display keyboard shortcut in UserDropdown chat menu items ( #4414 )
...
* Initial plan
* Add keyboard shortcut display to UserDropdown chat menu items
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Successfully implement keyboard shortcut display in UserDropdown chat menu
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
* Additional instructions
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: gabek <414923+gabek@users.noreply.github.com >
Co-authored-by: Gabe Kangas <gabek@real-ity.com >
2025-07-04 14:19:17 -07:00