-
Notifications
You must be signed in to change notification settings - Fork 21
Description
Add plugin internationalization (i18n) support
Problem
The Synthetic Monitoring plugin currently ships English-only UI strings. Grafana’s how-to guide for plugin internationalization (https://grafana.com/developers/plugin-tools/how-to-guides/plugin-internationalization) provides a standard workflow. We should adopt that workflow so the plugin can be translated, load locale files dynamically, and give contributors a clear, supported process for adding translations. This ticket is scoped to implementing the i18n mechanism and proving the flow with a handful of translations, not translating every string.
Completion criteria
Phase 1: Implement the i18n mechanism and a small proof of concept
- Implement the i18n mechanism: declare supported languages, initialise plugin translations, add extraction tooling and ESLint i18n rules.
- Proof of concept translations: add
src/locales/en-US/<plugin-id>.jsonandsrc/locales/es-ES/<plugin-id>.json(or another second language) with a small set of keys. - Verification: confirm translations load at runtime.
- Docs: add a
README/CONTRIBUTINGblurb describing how to run the extraction, where translation files live, and how to test locally.
Phase 2: Crowdin support
- Request Crowdin access (via Okta) and run the Crowdin “create project” workflow to scaffold a project and obtain the
crowdin_project_id. Project name should match the repo name. - Add
crowdin.ymlpointing to theen-USsource files and add the Crowdin GitHub workflows to the repo:i18n-verify,i18n-crowdin-upload,i18n-crowdin-download, andi18n-crowdin-create-tasks. - Verify the upload/download PRs and the
i18n-verifyjob behave as expected; document the Crowdin project id and any repo-specific workflow changes in README/CONTRIBUTING.
The goal is to enable the translation workflow and prove it works; a follow-up ticket can expand coverage across the whole plugin.