Skip to content

Conversation

@mirko314
Copy link
Contributor

@mirko314 mirko314 commented Jan 13, 2026

Summary

  • Fix action labels to use i18n translation keys instead of hardcoded strings, making AI plugin actions translatable
  • Add complete German translations to all AI plugin translations.json files
  • Fix testTranslations.ts to properly use locale-specific translations (was using English for both locales)
  • Use "Prompt" as anglicism in German (industry standard per Adobe Firefly and other AI tools)
  • Fix German grammar issues: "Negativer Prompt", "Ruhiges Neon", "Moderne Volkskunst"
  • Add unit tests for action label translation functionality

Fixes https://github.com/imgly/ubq/issues/13630

Test plan

  • Verify action labels are translatable via i18n
  • Verify German translations display correctly when locale is set to de
  • Verify test translations show proper prefixes (& for generic, @ for provider-specific)
  • Run unit tests for action label translation
  • Manual testing: Set locale to German and verify all AI panel labels

🤖 Generated with Claude Code

@vercel
Copy link

vercel bot commented Jan 13, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
eachlabs-demo Ready Ready Preview, Comment Jan 16, 2026 1:38pm
plugins-bytedance Ready Ready Preview, Comment Jan 16, 2026 1:38pm
plugins-web Ready Ready Preview, Comment Jan 16, 2026 1:38pm

Review with Vercel Agent

@mirko314 mirko314 requested a review from maerch January 14, 2026 15:03
Removed the "de" sections from all translation JSON files:
- plugin-ai-audio-generation-web
- plugin-ai-generation-web
- plugin-ai-image-generation-web
- plugin-ai-sticker-generation-web
- plugin-ai-text-generation-web
- plugin-ai-video-generation-web
Add setDefaultTranslations() helper that only sets translations for keys
that don't already exist. This allows integrators to customize AI plugin
labels by calling setTranslations() BEFORE adding plugins, rather than
having to override them afterwards.

Changes:
- Add setDefaultTranslations() to plugin-ai-generation-web
- Update all AI plugin entry points to use setDefaultTranslations()
- Add ?translations=true query param to demo app for testing
- Update i18n.md docs with both pre/post plugin loading approaches
- Fix translation key prefixes (@imgly/ vs ly.img.)
Convert all cesdk.i18n.setTranslations() and cesdk.setTranslations() calls
to use setDefaultTranslations() helper. This ensures integrators can set
custom translations BEFORE plugins load without being overwritten.

- Converted 74 files across all AI plugin packages
- Added import for setDefaultTranslations from @imgly/plugin-ai-generation-web
- Maintains backward compatibility with existing integrations
Remove all hardcoded German translations from AI plugin TypeScript source files.
This completes the removal of German translations started in 14cfd6a.

Removed German translations from:
- plugin-ai-image-generation-web
- plugin-ai-video-generation-web
- plugin-ai-audio-generation-web
- plugin-ai-sticker-generation-web
- plugin-ai-generation-web (initializeProviders)
- Unit test assertions for German translations
- Extract hardcoded translations to translations.json file
- Add apps.json symlink for test translations
- Now 'AI' panel title gets '&AI' prefix with ?translations=true
Document the new translation pattern that allows integrators to
customize translations before plugins load using setDefaultTranslations.
- Translatable action labels with labelKey property
- setDefaultTranslations utility for integrator-first translations
- External translations.json files for easier customization
- Comprehensive i18n documentation in READMEs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants