fix(i18n): Fix setting partial resources not filling the rest per component. - #17543
fix(i18n): Fix setting partial resources not filling the rest per component.#17543skrustev wants to merge 4 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
This PR addresses a regression in per-component i18n customization where providing a partial resourceStrings object caused unspecified keys to effectively become blank (instead of falling back to the default resource strings). The change introduces a “merged view” of resource strings (default + custom overrides) and adds unit tests across multiple components to validate the behavior, including reacting to global i18n changes.
Changes:
- Update multiple components’
resourceStringsgetters to return merged default + custom resources when custom strings are provided. - Update resource refresh flows on global i18n/locale changes (e.g., centralizing into
updateResources(...)in a few places) so merged resource strings stay correct. - Add/extend unit tests to verify partial overrides and global i18n updates don’t wipe non-overridden defaults.
Reviewed changes
Copilot reviewed 62 out of 82 changed files in this pull request and generated 17 comments.
Show a summary per file
| File | Description |
|---|---|
| projects/igniteui-angular/tree/src/tree/tree.spec.ts | Adds tests validating partial per-node resource strings merge + global i18n update behavior. |
| projects/igniteui-angular/tree/src/tree/tree.component.css | Style artifact update for tree component. |
| projects/igniteui-angular/tree/src/tree/tree-node/tree-node.component.ts | Implements merged resource strings behavior for tree nodes. |
| projects/igniteui-angular/toast/src/toast/toast.component.css | Style artifact update for toast component. |
| projects/igniteui-angular/time-picker/src/time-picker/time-picker.component.ts | Implements merged resource strings behavior for time picker + updates on resource refresh. |
| projects/igniteui-angular/time-picker/src/time-picker/time-picker.component.css | Style artifact update for time picker component. |
| projects/igniteui-angular/tabs/src/tabs/tabs/tabs.component.css | Style artifact update for tabs component. |
| projects/igniteui-angular/tabs/src/tabs/tabs/item/tab-item.component.css | Style artifact update for tab item. |
| projects/igniteui-angular/tabs/src/tabs/tabs/header/tab-header.component.css | Style artifact update for tab header. |
| projects/igniteui-angular/tabs/src/tabs/tabs/content/tab-content.component.css | Style artifact update for tab content. |
| projects/igniteui-angular/stepper/src/stepper/stepper.component.css | Style artifact update for stepper component. |
| projects/igniteui-angular/splitter/src/splitter/splitter.component.css | Style artifact update for splitter component. |
| projects/igniteui-angular/snackbar/src/snackbar/snackbar.component.css | Style artifact update for snackbar component. |
| projects/igniteui-angular/select/src/select/select.component.css | Style artifact update for select component. |
| projects/igniteui-angular/query-builder/src/query-builder/query-builder.component.ts | Implements merged resource strings behavior for query builder. |
| projects/igniteui-angular/query-builder/src/query-builder/query-builder.component.spec.ts | Adds tests validating partial resource strings merge + global i18n updates for query builder. |
| projects/igniteui-angular/query-builder/src/query-builder/query-builder-tree.component.ts | Updates resource refresh logic and merged resource strings behavior for query builder tree. |
| projects/igniteui-angular/query-builder/src/query-builder/query-builder-header.component.ts | Implements merged resource strings behavior for query builder header. |
| projects/igniteui-angular/paginator/src/paginator/paginator.component.ts | Implements merged resource strings behavior for paginator + updates on resource refresh. |
| projects/igniteui-angular/paginator/src/paginator/paginator.component.spec.ts | Adds tests validating global i18n updates with custom/non-custom paginator resource strings. |
| projects/igniteui-angular/paginator/src/paginator/paginator.component.css | Style artifact update for paginator component. |
| projects/igniteui-angular/navbar/src/navbar/navbar.component.css | Style artifact update for navbar component. |
| projects/igniteui-angular/list/src/list/list.component.ts | Implements merged resource strings behavior for list + updates on resource refresh. |
| projects/igniteui-angular/list/src/list/list.component.spec.ts | Adds tests validating partial list resource strings merge + global i18n updates. |
| projects/igniteui-angular/input-group/src/input-group/input-group.component.ts | Implements merged resource strings behavior for input group + updates on resource refresh. |
| projects/igniteui-angular/input-group/src/input-group/input-group.component.spec.ts | Adds tests validating partial input group resource strings merge + global i18n updates. |
| projects/igniteui-angular/icon/src/icon/icon.component.css | Style artifact update for icon component. |
| projects/igniteui-angular/grids/pivot-grid/src/pivot-data-selector.component.css | Style artifact update for pivot data selector. |
| projects/igniteui-angular/grids/grid/src/grid.component.spec.ts | Adds tests validating partial grid resource strings merge + global i18n updates. |
| projects/igniteui-angular/grids/grid/src/grid-base.directive.ts | Implements merged resource strings behavior for grid base + updates locale/resource refresh flow. |
| projects/igniteui-angular/grids/core/src/toolbar/grid-toolbar.component.css | Style artifact update for grid toolbar. |
| projects/igniteui-angular/grids/core/src/summaries/grid-summary.component.css | Style artifact update for grid summary. |
| projects/igniteui-angular/grids/core/src/pivot-grid-dimensions.ts | Implements merged resource strings behavior for pivot date dimension. |
| projects/igniteui-angular/grids/core/src/column-actions/column-actions.component.css | Style artifact update for column actions. |
| projects/igniteui-angular/expansion-panel/src/expansion-panel/expansion-panel.component.css | Style artifact update for expansion panel. |
| projects/igniteui-angular/drop-down/src/drop-down/drop-down.component.css | Style artifact update for drop-down. |
| projects/igniteui-angular/directives/src/directives/divider/divider.component.css | Style artifact update for divider. |
| projects/igniteui-angular/dialog/src/dialog/dialog.component.css | Style artifact update for dialog. |
| projects/igniteui-angular/date-picker/src/date-range-picker/date-range-picker.component.ts | Implements merged resource strings behavior for date range picker + updates on resource refresh. |
| projects/igniteui-angular/date-picker/src/date-range-picker/date-range-picker.component.spec.ts | Adds tests validating partial date range picker resource strings merge + global i18n updates. |
| projects/igniteui-angular/date-picker/src/date-range-picker/date-range-picker.component.css | Style artifact update for date range picker. |
| projects/igniteui-angular/date-picker/src/date-picker/date-picker.component.css | Style artifact update for date picker. |
| projects/igniteui-angular/combo/src/combo/combo.component.spec.ts | Adds tests validating partial combo resource strings merge + global i18n updates. |
| projects/igniteui-angular/combo/src/combo/combo.component.css | Style artifact update for combo. |
| projects/igniteui-angular/combo/src/combo/combo.common.ts | Implements merged resource strings behavior for combo base directive + updates on resource refresh. |
| projects/igniteui-angular/chips/src/chips/chips-area/chips-area.component.css | Style artifact update for chips area. |
| projects/igniteui-angular/chips/src/chips/chip.spec.ts | Adds tests validating partial chip resource strings merge + global i18n updates. |
| projects/igniteui-angular/chips/src/chips/chip.component.ts | Implements merged resource strings behavior for chip + updates on resource refresh. |
| projects/igniteui-angular/carousel/src/carousel/carousel.component.ts | Implements merged resource strings behavior for carousel + updates on resource refresh. |
| projects/igniteui-angular/carousel/src/carousel/carousel.component.spec.ts | Adds tests validating partial carousel resource strings merge + global i18n updates. |
| projects/igniteui-angular/calendar/src/calendar/shared-themes/calendar-picker/calendar-picker.component.css | Style artifact update for calendar picker. |
| projects/igniteui-angular/calendar/src/calendar/month-picker/month-picker.component.css | Style artifact update for month picker. |
| projects/igniteui-angular/calendar/src/calendar/calendar-base.ts | Implements merged resource strings behavior for calendar base + updates locale/resource refresh flow. |
| projects/igniteui-angular/bottom-nav/src/bottom-nav/bottom-nav.component.css | Style artifact update for bottom nav. |
| projects/igniteui-angular/banner/src/banner/banner.component.ts | Implements merged resource strings behavior for banner + updates on resource refresh. |
| projects/igniteui-angular/banner/src/banner/banner.component.spec.ts | Adds tests validating partial banner resource strings + global i18n behavior. |
| projects/igniteui-angular/banner/src/banner/banner.component.css | Style artifact update for banner. |
| projects/igniteui-angular/badge/src/badge/badge.component.css | Style artifact update for badge. |
| projects/igniteui-angular/avatar/src/avatar/avatar.component.css | Style artifact update for avatar. |
| projects/igniteui-angular/action-strip/src/action-strip/action-strip.component.ts | Implements merged resource strings behavior for action strip + updates on resource refresh. |
| projects/igniteui-angular/action-strip/src/action-strip/action-strip.component.spec.ts | Adds tests validating global i18n behavior with custom/non-custom action strip resource strings. |
| projects/igniteui-angular/action-strip/src/action-strip/action-strip.component.css | Style artifact update for action strip. |
Files not reviewed (19)
- projects/igniteui-angular/action-strip/src/action-strip/action-strip.component.css: Generated file
- projects/igniteui-angular/avatar/src/avatar/avatar.component.css: Generated file
- projects/igniteui-angular/badge/src/badge/badge.component.css: Generated file
- projects/igniteui-angular/banner/src/banner/banner.component.css: Generated file
- projects/igniteui-angular/bottom-nav/src/bottom-nav/bottom-nav.component.css: Generated file
- projects/igniteui-angular/button-group/src/button-group/buttongroup-content.component.css: Generated file
- projects/igniteui-angular/calendar/src/calendar/calendar.component.css: Generated file
- projects/igniteui-angular/calendar/src/calendar/days-view/days-view.component.css: Generated file
- projects/igniteui-angular/calendar/src/calendar/month-picker/month-picker.component.css: Generated file
- projects/igniteui-angular/calendar/src/calendar/shared-themes/calendar-picker/calendar-picker.component.css: Generated file
- projects/igniteui-angular/calendar/src/calendar/shared-themes/years-months/years-months.component.css: Generated file
- projects/igniteui-angular/card/src/card/card.component.css: Generated file
- projects/igniteui-angular/carousel/src/carousel/carousel.component.css: Generated file
- projects/igniteui-angular/checkbox/src/checkbox/checkbox.component.css: Generated file
- projects/igniteui-angular/chips/src/chips/chip.component.css: Generated file
- projects/igniteui-angular/chips/src/chips/chips-area/chips-area.component.css: Generated file
- projects/igniteui-angular/combo/src/combo/combo.component.css: Generated file
- projects/igniteui-angular/date-picker/src/date-picker/date-picker.component.css: Generated file
- projects/igniteui-angular/date-picker/src/date-range-picker/date-range-picker.component.css: Generated file
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
mddragnev
left a comment
There was a problem hiding this comment.
Can you remove the commited *.component.css files?
Related #17540
Description
Fix setting partial custom resources per component returning partial resources as well when getting them using the
resourceStringsproperty instead of getting merged with the default ones.Type of Change (check all that apply):
Component(s) / Area(s) Affected:
How Has This Been Tested?
Checklist:
feature/README.MDupdates for the feature docsREADME.MDCHANGELOG.MDupdates for newly added functionalityng updatemigrations for the breaking changes (migrations guidelines)