Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
8a3b28c
refactor(*): New localization initial implementation.
skrustev Jul 8, 2025
0b31b3d
refactor(locale): Replace any other occurances of formatting pipes.
skrustev Jul 8, 2025
4e5e3e0
fix(localization): Set core i18n package is external, to be excluded …
skrustev Jul 25, 2025
53cb864
fix(grid): Set the new localization update for grid globally.
skrustev Jul 25, 2025
4db5f2a
feat(grid): Add custom currency code, currency symbol and position o…
skrustev Jul 25, 2025
468fae0
feat(calendar): Add start of week implementation and update locale ba…
skrustev Jul 25, 2025
a24767e
feat(grid): Apply Angular localeID in case it is set as a higher prio…
skrustev Jul 28, 2025
9ef4fa0
feat(localization): Apply new localization to calendar and date picke…
skrustev Jul 28, 2025
ac694ae
feat(localization): Apply new localization to query builder and excel…
skrustev Jul 28, 2025
ff0c074
feat(localization): Update EN resources and igniteui-angular-i18n to …
skrustev Jul 30, 2025
052b047
feat(localization): Separate resourceStrings and locale inputs from n…
skrustev Jul 30, 2025
475f9c9
chore(*): Update comment
skrustev Jul 30, 2025
1ad5848
Merge master into skrastev/localization
skrustev Aug 5, 2025
b29005b
feat(util): Use locale manager to get Date from string and number.
skrustev Aug 8, 2025
cf11f71
fix(grid): Reset currency position when locale changes.
skrustev Aug 8, 2025
e2738a5
feat(demos): Add locale to properties panel and remove root locale re…
skrustev Aug 8, 2025
758c254
fix(calendar): Fix calendar first week not updating and add proper se…
skrustev Aug 8, 2025
dc8e3c9
feat(calendar): Get rid of formatters recreating in calendar and use …
skrustev Aug 8, 2025
6c9cb97
fix(calendarView): Fix locale not updating for calendar views.
skrustev Aug 8, 2025
20372db
fix(calendarView): Remove default values for locale.
skrustev Aug 8, 2025
f23bb7e
fix(date-picker): Fix locale not being reflected when changed.
skrustev Aug 8, 2025
2336ae1
fix(*): Fix time formating for date using wrong variable.
skrustev Aug 8, 2025
ffa87c5
fix(grid): Fix grid resource string assigning and summary cell use of…
skrustev Aug 8, 2025
d10f5f9
fix(grid): Remove unnecessary summary cell method. Fix detect change …
skrustev Aug 8, 2025
8e86e3f
fix(localization): Apply new internal handling for localization event…
skrustev Aug 11, 2025
c822fce
fix(*); Cleanup a bit empty imports and other minor things.
skrustev Aug 13, 2025
c28c44d
feat(i18n): Add getLocaleDateFormat and getLocaleDateTimeFormat.
skrustev Aug 14, 2025
3862b66
fix(i18n): Fixes to wrong locale prop used and DatePipe.
skrustev Aug 14, 2025
ca3a2cf
fix(locale): Fix incorrect currency display assignment.
skrustev Aug 18, 2025
6c03c0c
fix(query-builder): Replace use of deprecated DatePipe with Intl.
skrustev Aug 18, 2025
fe690f4
Merge master into skrastev/localization
skrustev Aug 18, 2025
4d80504
refactor(calendar): Defer any creation of Intl.DateTimeFormat to new …
skrustev Aug 20, 2025
0721fe9
refactor(pivotGrid): Replace use of Intl with new locale and fix colu…
skrustev Aug 20, 2025
56e856b
Merge master into skrastev/localization
skrustev Aug 20, 2025
1d6ae6d
fix(i18n): Tweak resource function used for localization objects. Add…
skrustev Aug 21, 2025
4b8caec
fix(i18n): Expose new core package methods for angular.
skrustev Aug 22, 2025
cda8d3f
fix(elements): Expose new locale api to Elements.
skrustev Aug 22, 2025
8b392a3
fix(calendar): Fixes related to date and calendar init in test.
skrustev Aug 25, 2025
0af39a3
tests(pickers): Tweak tests to affect throw error and manual locale.
skrustev Aug 25, 2025
2a63192
fix(query-builder): Fix resource strings not inherited from grid and …
skrustev Aug 25, 2025
3fd96c1
fix(pivotGrid): Fix pivot dimension invalid inject and pivot grid ini…
skrustev Aug 25, 2025
995f79e
Merge master into skrastev/localization
skrustev Aug 25, 2025
b574d71
tests(localization): Add automation for localization and new util fun…
skrustev Aug 28, 2025
b3d6c24
chore(*): Add changelog and mentions of locale.
skrustev Aug 28, 2025
133b48f
chore(*): Add docs to the old method
skrustev Aug 28, 2025
2c4ed5d
Merge master into skrastev/localization
skrustev Aug 29, 2025
6566a8a
fix(localization): Add subfolder for new i18n types, to avoid collisi…
skrustev Aug 29, 2025
9f7fb60
refactor(localization): Update localization API to new separated stru…
skrustev Sep 18, 2025
bc8c058
feat(package): Add igniteui-i18n-core and resources packages as npm r…
skrustev Sep 25, 2025
d7e3640
Merge master insto skrastev/localization
skrustev Sep 25, 2025
292fa2b
Merge branch 'skrastev/localization' into skrastev/localization-split
skrustev Sep 25, 2025
4df598e
fix(packages): Bump version number for i18n packages.
skrustev Sep 25, 2025
1f60578
Merge pull request #16230 from IgniteUI/skrastev/localization-split
skrustev Sep 25, 2025
256431c
chore(*): Use specific version for i18n packages.
skrustev Sep 25, 2025
834daea
fix(localization): Fix initialization of components to assign their l…
skrustev Sep 26, 2025
c3d9180
fix(localization): Fix formatDate not defaulting to angular's format …
skrustev Sep 26, 2025
1722733
test(*): Fix failing tests and try to fix some sporadic ones.
skrustev Sep 26, 2025
8d8ff38
fix(pivotGrid): Fix resource change handler triggering before initial…
skrustev Sep 26, 2025
6c59097
tests(localization): Fix tests related to localization integration.
skrustev Sep 26, 2025
1034253
chore(*): Try fixing locale specific tests.
skrustev Sep 26, 2025
32b604f
feat(localization): Add ability to disable Angulars locale and locali…
skrustev Sep 26, 2025
d7b4665
tests(locale): Fix locale tests due to Angulars specifics.
skrustev Sep 26, 2025
3712225
chore(*): Adjust test timezone due to test machine difference.
skrustev Sep 29, 2025
48a7d4e
chore(*): Add i18n core dependency to handler.
skrustev Sep 29, 2025
c354996
chore(*): Bump up i18n versions.
skrustev Sep 29, 2025
c02aa83
test(i18n): Fix basic i18n test.
skrustev Sep 29, 2025
6fac7b3
fix(locale): Fix initial component locale comming from Angular overri…
skrustev Oct 1, 2025
5fbaca8
fix(localization): Remove dependency to igniteui-angular from resourc…
skrustev Oct 1, 2025
8a69581
chore(*): Update changelog and added notes to old API and resources.
skrustev Oct 6, 2025
de7a2ee
chore(*): Add export for toggling Angular localization.
skrustev Oct 6, 2025
57b3b55
docs(*): add all localization components in one sample
dkamburov Oct 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
21 changes: 16 additions & 5 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,20 +94,31 @@ There are several ways to localize components' string resources:
1.1. Localize a given instance of component - each component which supports localization has input property `resourceStrings`. Setting a newly instantiated object to this property will localize only that given component's instance.
1.2. Localize all resources for a component type - each component which supports localization has input property `resourceStrings`. To localize all instances of a given component in the application the following steps should be performed - get the value of the input property `resourceStrings` of the component to be localized; do not create a new instance but replace the existing strings within the object. By default all components of a given type in an application share one instance of the resource strings. Replacing a value in that instance affects all components of that type in the application.
1.3. Localize all resources for all components - use global method `getCurrentResourceStrings` to get an object containing current resource strings for all components. To provide localized resources just pass an object of type `IResourceStrings` to the global method `changei18n`.
1.4 As of 20.2.0 the localization has new implementation and you can use the new API `registerI18n` to register resource string for a component or all components for the whole app, as well as which locale it corresponds to. To localize a single component you will need to get is corresponding resource string keys using one of the available resources and provide only those keys.

2. Using npm package:
We've created new repository which will hold the resource strings for languages different than English:
https://github.com/IgniteUI/igniteui-angular-i18n

**NOTE** The localization repo has been moved to live inside the `igniteui-angular` repository under `./projects/igniteui-angular-i18n`
**NOTE** The localization repo has been moved to live inside the `igniteui-angular` repository under `./projects/igniteui-angular-i18n`
**NOTE** As of 20.1.x the localization resource strings have been moved to the [`igniteui-i18n`](https://github.com/IgniteUI/igniteui-i18n) repository under `projects/igniteui-i18n-resources`.

A npm package should be published each time we release new version of Ignite UI for Angular. Its version should correspond to the version of the igniteui-angular npm package.
One could localize an application by importing the corresponding localized resource strings from the localization package (`igniteui-angular-i18n`) and use the methods described in the previous bullet to localize the whole application or part of it.
Example:

**Example:**

Inside app.module you can perform:
_import { IgxResouceStringsJA } from ‘igniteui-angular-i18n’;_
And then:
_Changei18n(IgxResouceStringsJA);_
```ts
import { IgxResouceStringsJA } from ‘igniteui-angular-i18n’;
changei18n(IgxResouceStringsJA);
```

**Example new API:**
```ts
import { ResouceStringsJA } from ‘igniteui-i18n-resources’;
registerI18n(IgxResouceStringsJA, 'ja');
```

### Resource strings keys naming convention
Each key in the `IResourceStrings` (and `IGridResourceStrings`, `ITimePickerResourceStrings`, etc.) is prefixed with components' selector and followed by the resource string key. Having components' selectors as prefixes allows us to have same resource strings keys for more than one component.
Expand Down
9 changes: 8 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,18 @@

All notable changes for each version of this project will be documented in this file.

## 20.2.0

- Localization(i18n) for `IgxActionStrip`, `IgxBanner`, `IgxCalendar`, `IgxCarousel`, `IgxChip`, `IgxCombo`, `IgxDatePicker`, `IgxDateRangePicker`, `IgxGrid`, `IgxTreeGrid`, `IgxHierarchicalGrid`, `IgxPivotGrid`, `IgxInputs`, `IgxList`, `IgxPaginator`, `IgxQueryBuilder`, `IgxTimePicker`, `IgxTree`
- New `Intl` implementation for all currently supported components that format and render data like dates and numbers.
- New localization implementation for the currently supported languages for all components that have resource strings in the currently supported languages.
- New public localization API and package named `igniteui-i18n-resources` containing the new resources that are used in conjunction.
- Added API to toggle off Angular's default formatting completely in favor of the new `Intl` implementation. Otherwise `Intl` will be used when a locale is not defined for Angular to use.
- Old resources and API should still remain working and not experience any change in behavior, despite internally using the new localization as well.

## 20.1.0

### New Features

- `IgxGrid`, `IgxTreeGrid`, `IgxHierarchicalGrid`
- Introduced a new cell merging feature that allows you to configure and merge cells in a column based on same data or other custom condition, into a single cell.

Expand Down
2 changes: 1 addition & 1 deletion angular.json
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,7 @@
],
"outputHashing": "none",
"optimization": true,
"externalDependencies": ["lit"]
"externalDependencies": ["lit", "igniteui-i18n-core"]
},
"development": {
"optimization": false,
Expand Down
Loading