trypost/app
Paulo Castellano aaa4db1dbb feat: add workspace content_language setting for AI generation
Users can now pick the language AI uses for captions, hashtags,
descriptions, AND on-image / on-screen text — independent of the
app UI locale. A user with pt-BR UI who writes for an English
audience gets English content, and vice versa.

- New content_language column on workspaces (added to the existing
  create_workspaces_table migration since we're pre-production),
  defaulting to 'en'. Fillable on the model.
- Dropdown in Settings → Workspace → Brand, side-by-side with Tone.
  Options: English, Português (Brasil), Español. Short helper copy
  explains what the setting controls.
- Validation: sometimes|string|in:en,pt-BR,es — optional on update
  so existing callers that don't post the field keep the current
  value (DB default handles fresh workspaces).
- System prompt now uses $content_language (sourced from the
  workspace) instead of app()->getLocale(). The rule was also
  strengthened: the AI must always write in this language regardless
  of what language the user types instructions in, and must instruct
  image/video tools to render on-media text in this language too.
- Image and video Blade prompts received a new line forcing any text
  rendered inside the generated media to use $content_language.
- GenerateImage tool and VideoGenerationService pass the workspace's
  content_language into their respective prompt templates.

Previously the caption would be in Portuguese (since it followed the
user's input language) but the image could render with English text
because there was no explicit constraint. Now the whole pipeline is
aligned to one per-workspace language.
2026-04-16 10:37:03 -03:00
..
Actions feat: add PostCommentCreated broadcast event 2026-04-15 20:11:36 -03:00
Ai feat: add workspace content_language setting for AI generation 2026-04-16 10:37:03 -03:00
Broadcasting feat: complete AI assistant with custom services and brand config 2026-04-16 09:25:08 -03:00
Concerns refactor: settings redesign, Spanish translations, language system, strict_types 2026-03-30 00:20:43 -03:00
Console/Commands fix: RecoverStuckPosts also recovers platforms stuck in Pending status 2026-04-01 13:12:55 -03:00
DataTransferObjects feat: add PostCommentCreated broadcast event 2026-04-15 20:11:36 -03:00
Enums feat: complete AI assistant with custom services and brand config 2026-04-16 09:25:08 -03:00
Events feat: complete AI assistant with custom services and brand config 2026-04-16 09:25:08 -03:00
Exceptions fix: Facebook/Instagram/Threads OAuthException type incorrectly treated as token error — now only code 190 triggers TokenExpiredException 2026-04-01 14:33:26 -03:00
Features feat: introduce Account entity as billing owner and refactor architecture 2026-04-14 22:22:04 -03:00
Helpers fix: correct Upload.php filename case for Linux CI 2026-03-31 12:01:48 -03:00
Http feat: add workspace content_language setting for AI generation 2026-04-16 10:37:03 -03:00
Jobs feat: add PostCommentCreated broadcast event 2026-04-15 20:11:36 -03:00
Listeners feat: redesign billing, onboarding, sidebar, and settings architecture 2026-04-15 00:33:38 -03:00
Mail feat: introduce Account entity as billing owner and refactor architecture 2026-04-14 22:22:04 -03:00
Mcp feat: add PostCommentCreated broadcast event 2026-04-15 20:11:36 -03:00
Models feat: add workspace content_language setting for AI generation 2026-04-16 10:37:03 -03:00
Policies feat: introduce Account entity as billing owner and refactor architecture 2026-04-14 22:22:04 -03:00
Providers feat: add platform rules for all 12 supported social networks 2026-04-16 10:03:14 -03:00
Rules refactor: restructure to Actions, subdomain routes (app/api), API tokens 2026-03-29 19:24:28 -03:00
Services feat: add workspace content_language setting for AI generation 2026-04-16 10:37:03 -03:00
Socialite refactor: code review fixes — policies, enums, data_get, tests 2026-03-31 00:40:18 -03:00