UNPKG

igniteui-angular-sovn

Version:

Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps

140 lines (134 loc) 5.38 kB
import { DatePickerResourceStringsEN, IDatePickerResourceStrings, } from "./date-picker-resources"; import { DateRangePickerResourceStringsEN, IDateRangePickerResourceStrings, } from "./date-range-picker-resources"; import { IGridResourceStrings, GridResourceStringsEN } from "./grid-resources"; import { ITimePickerResourceStrings, TimePickerResourceStringsEN, } from "./time-picker-resources"; import { IPaginatorResourceStrings, PaginatorResourceStringsEN, } from "./paginator-resources"; import { cloneValue } from "../utils"; import { ICarouselResourceStrings, CarouselResourceStringsEN, } from "./carousel-resources"; import { IChipResourceStrings, ChipResourceStringsEN } from "./chip-resources"; import { IListResourceStrings, ListResourceStringsEN } from "./list-resources"; import { CalendarResourceStringsEN, ICalendarResourceStrings, } from "./calendar-resources"; import { IInputResourceStrings, InputResourceStringsEN, } from "./input-resources"; import { ITreeResourceStrings, TreeResourceStringsEN } from "./tree-resources"; import { IActionStripResourceStrings, ActionStripResourceStringsEN, } from "./action-strip-resources"; import { IQueryBuilderResourceStrings, QueryBuilderResourceStringsEN, } from "./query-builder-resources"; import { ComboResourceStringsEN, IComboResourceStrings, } from "./combo-resources"; import { BannerResourceStringsEN, IBannerResourceStrings, } from "./banner-resources"; export interface IResourceStrings extends IGridResourceStrings, ITimePickerResourceStrings, ICalendarResourceStrings, ICarouselResourceStrings, IChipResourceStrings, IComboResourceStrings, IInputResourceStrings, IDatePickerResourceStrings, IDateRangePickerResourceStrings, IListResourceStrings, IPaginatorResourceStrings, ITreeResourceStrings, IActionStripResourceStrings, IQueryBuilderResourceStrings, IBannerResourceStrings {} /** * @hidden * IF YOU EDIT THIS OBJECT, DO NOT FORGET TO UPDATE * projects/igniteui-angular-sovn-i18n as well (create the appropriately named files, * containing the new/updated component string keys and EN strings for values + create a separate issue + pending-localization label) * * TODO Add automation tests: * 1) each of the folders/languages under \projects\igniteui-angular-sovn-i18n\src\ contain resources.ts file with matching components count. * \projects\igniteui-angular-sovn-i18n\src\BG\resources.ts contains IgxResourceStringsBG.count matching this.CurrentResourceStrings.count * 2) \igniteui-angular-sovn\projects\igniteui-angular-sovn\src\public_api.ts --> Check if the new interface is added * to IInputResourceStrings (just a proxy as it is later on imported in the angular-i18n package) */ export const CurrentResourceStrings = { GridResStrings: cloneValue(GridResourceStringsEN), PaginatorResStrings: cloneValue(PaginatorResourceStringsEN), TimePickerResStrings: cloneValue(TimePickerResourceStringsEN), CalendarResStrings: cloneValue(CalendarResourceStringsEN), ChipResStrings: cloneValue(ChipResourceStringsEN), ComboResStrings: cloneValue(ComboResourceStringsEN), DatePickerResourceStrings: cloneValue(DatePickerResourceStringsEN), DateRangePickerResStrings: cloneValue(DateRangePickerResourceStringsEN), CarouselResStrings: cloneValue(CarouselResourceStringsEN), ListResStrings: cloneValue(ListResourceStringsEN), InputResStrings: cloneValue(InputResourceStringsEN), TreeResStrings: cloneValue(TreeResourceStringsEN), ActionStripResourceStrings: cloneValue(ActionStripResourceStringsEN), QueryBuilderResStrings: cloneValue(QueryBuilderResourceStringsEN), BannerResourceStrings: cloneValue(BannerResourceStringsEN), }; const updateResourceStrings = ( currentStrings: IResourceStrings, newStrings: IResourceStrings ) => { for (const key of Object.keys(newStrings)) { if (key in currentStrings) { currentStrings[key] = newStrings[key]; } } }; /** * Changes the resource strings for all components in the application * ``` * @param resourceStrings to be applied */ export const changei18n = (resourceStrings: IResourceStrings) => { for (const key of Object.keys(CurrentResourceStrings)) { updateResourceStrings(CurrentResourceStrings[key], resourceStrings); } }; /** * Returns current resource strings for all components */ export const getCurrentResourceStrings = (): IResourceStrings => ({ ...CurrentResourceStrings.CalendarResStrings, ...CurrentResourceStrings.CarouselResStrings, ...CurrentResourceStrings.ChipResStrings, ...CurrentResourceStrings.ComboResStrings, ...CurrentResourceStrings.DatePickerResourceStrings, ...CurrentResourceStrings.DateRangePickerResStrings, ...CurrentResourceStrings.GridResStrings, ...CurrentResourceStrings.InputResStrings, ...CurrentResourceStrings.ListResStrings, ...CurrentResourceStrings.PaginatorResStrings, ...CurrentResourceStrings.TimePickerResStrings, ...CurrentResourceStrings.TreeResStrings, ...CurrentResourceStrings.ActionStripResourceStrings, ...CurrentResourceStrings.QueryBuilderResStrings, ...CurrentResourceStrings.BannerResourceStrings, });