Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request introduces significant improvements to translation management and locale handling in the Better Together codebase. The main changes include robust locale normalization to prevent errors, new helper methods for translation coverage and display, the addition of a translation manager Stimulus controller for tab management, and a new view partial for browsing translations by attribute.
Locale Handling Improvements
normalize_localemethod toApplicationControllerto sanitize and validate locale values, preventingI18n::InvalidLocaleerrors and supporting partial locale matches (e.g., 'en-US' → 'en'). This method is now used in the locale-setting logic. [1] [2]Translation Coverage and Display Helpers
TranslationsHelperwith methods to calculate per-locale translation coverage for models, including detailed attribute-level statistics and support for STI descendants and various backend types.ApplicationHelperfor determining badge colors based on data type and formatting locale codes for display.Translation Manager UI Enhancements
translation_manager_controller.js) to handle tab activation and lazy loading for translation management views, improving user experience._by_attribute.html.erb) for browsing translation records by attribute, featuring attribute filtering, results count, a detailed table, and pagination.