[i18n] Report translation coverage during integrate#264124
Conversation
Adds a new Listr step to `scripts/i18n_integrate` that diffs the extracted English messages against the `--source` translation file, logs overall coverage (total / translated / missing / %), and optionally writes a per-namespace JSON report via `--coverage-report <path>`. Closes elastic#174920 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Pinging @elastic/kibana-core (Team:Core) |
|
@jesuswr - do you think we could hand over the ownership for these files? We seem to be the owners, but features/fixes and effective ownership is really with core, so I think it makes sense that CODEOWNERS reflects this. |
|
It makes sense to me but I'll let @Bamieh confirm just in case! |
yes makes sense for us to be the owners for those for sure. it was at some point i think with folder/files movement this was an unexpected sideeffect |
| /.coderabbit.yml @elastic/kibana-operations | ||
|
|
||
| # Kibana Localization | ||
| /src/dev/i18n_tools/ @elastic/kibana-localization @elastic/kibana-core |
There was a problem hiding this comment.
We were already marked as owners but the /src/dev/ @.../kibana-operations line above was overwriting it. Fixing it here.
Could you approve? @delanni
|
Thanks for the suggestions @Bamieh ! Could you review again? 😆 Last commit applied those suggestions and fixed the codeowners |
💚 Build Succeeded
Metrics [docs]
History
cc @jesuswr |
…ilder_new_vis_attachment * commit '6fd683609eb6dee81f242f8ff6951edbe3bfd66c': (226 commits) Remove Model Author group-by option from external inference endpoints (elastic#264761) [Streams][Streamlang] Align ES|QL condition transpiler with Painless on null propagation (elastic#264751) chore(axios,workflows-eng): remove axios from workflows connector utils (elastic#267512) [failed-test-reporter] avoid opening issues for scout env failures (elastic#267649) [kbn-api-contracts] Detect request-body additionalProperties:false tightening (elastic#267546) [main] Sync bundled packages with Package Storage (elastic#267644) Centralize phase colors and descriptions (elastic#266680) [Unified Waterfall] Add "Scroll to origin" button (elastic#266594) [APM] Add alert and SLO badges to the service map embeddable (elastic#266360) [CI] Speed up telemetry_check by pre-filtering to collector files (elastic#265978) [Discover] Address flaky large CSV test (elastic#266642) avoid passing unrelated props within integration card icon component conditional render (elastic#266569) [Cases][Templates] Extend cases search by template field label (elastic#266414) [Background search] Migrate custom SplitButton to EuiSplitButton (elastic#267447) [i18n] Report translation coverage during integrate (elastic#264124) [api-docs] 2026-05-05 Daily api_docs build (elastic#267639) [Scout] Update test config manifests (elastic#267636) [content list] Add saved object provider services (elastic#266428) [Fleet] Otel UI add health and implement it in OTelComponentDetail (elastic#267292) Update dependency msw to v2.13.4 (main) (elastic#266770) ...
Summary
Adds a new Listr step to
scripts/i18n_integratethat diffs the extracted English messages against the--sourcetranslation file and reports coverage:total / translated / missing / %.--coverage-report <path>flag writes a per-namespace JSON report, including the sorted list of missing ids.Closes #174920
Test plan
node scripts/i18n_integrate.js --source x-pack/platform/plugins/private/translations/translations/fr-FR.json --target /tmp/out.json --coverage-report /tmp/coverage.json --dry-runprints a coverage summary and writes the JSON report.--coverage-reportstill prints the summary and does not write a report.--coverage-reportwith no value or passed twice fails fast with a clear error.Validating translation filesstep still runs clean after the new step.🤖 Generated with Claude Code