feat(common): add locale id parameter to `registerLocaleData` (#20623)
PR Close #20623
This commit is contained in:
parent
8ecda94899
commit
24bf3e2a25
|
@ -4895,6 +4895,5 @@ switch (goog.LOCALE) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (l) {
|
if (l) {
|
||||||
l[0] = goog.LOCALE;
|
registerLocaleData(l, goog.LOCALE);
|
||||||
registerLocaleData(l);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,9 +17,17 @@ export const LOCALE_DATA: {[localeId: string]: any} = {};
|
||||||
*
|
*
|
||||||
* @experimental i18n support is experimental.
|
* @experimental i18n support is experimental.
|
||||||
*/
|
*/
|
||||||
export function registerLocaleData(data: any, extraData?: any) {
|
// The signature registerLocaleData(data: any, extraData?: any) is deprecated since v5.1
|
||||||
const localeId = data[LocaleDataIndex.LocaleId].toLowerCase().replace(/_/g, '-');
|
export function registerLocaleData(data: any, localeId?: string | any, extraData?: any): void {
|
||||||
|
if (typeof localeId !== 'string') {
|
||||||
|
extraData = localeId;
|
||||||
|
localeId = data[LocaleDataIndex.LocaleId];
|
||||||
|
}
|
||||||
|
|
||||||
|
localeId = localeId.toLowerCase().replace(/_/g, '-');
|
||||||
|
|
||||||
LOCALE_DATA[localeId] = data;
|
LOCALE_DATA[localeId] = data;
|
||||||
|
|
||||||
if (extraData) {
|
if (extraData) {
|
||||||
LOCALE_DATA[localeId][LocaleDataIndex.ExtraData] = extraData;
|
LOCALE_DATA[localeId][LocaleDataIndex.ExtraData] = extraData;
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,8 +10,8 @@ import localeCaESVALENCIA from '../../locales/ca-ES-VALENCIA';
|
||||||
import localeEn from '../../locales/en';
|
import localeEn from '../../locales/en';
|
||||||
import localeFr from '../../locales/fr';
|
import localeFr from '../../locales/fr';
|
||||||
import localeFrCA from '../../locales/fr-CA';
|
import localeFrCA from '../../locales/fr-CA';
|
||||||
import {findLocaleData} from '../../src/i18n/locale_data_api';
|
|
||||||
import {registerLocaleData} from '../../src/i18n/locale_data';
|
import {registerLocaleData} from '../../src/i18n/locale_data';
|
||||||
|
import {findLocaleData} from '../../src/i18n/locale_data_api';
|
||||||
|
|
||||||
export function main() {
|
export function main() {
|
||||||
describe('locale data api', () => {
|
describe('locale data api', () => {
|
||||||
|
@ -20,6 +20,8 @@ export function main() {
|
||||||
registerLocaleData(localeEn);
|
registerLocaleData(localeEn);
|
||||||
registerLocaleData(localeFr);
|
registerLocaleData(localeFr);
|
||||||
registerLocaleData(localeFrCA);
|
registerLocaleData(localeFrCA);
|
||||||
|
registerLocaleData(localeFr, 'fake-id');
|
||||||
|
registerLocaleData(localeFrCA, 'fake_Id2');
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('findLocaleData', () => {
|
describe('findLocaleData', () => {
|
||||||
|
@ -42,6 +44,12 @@ export function main() {
|
||||||
expect(findLocaleData('ca-ES-VALENCIA')).toEqual(localeCaESVALENCIA);
|
expect(findLocaleData('ca-ES-VALENCIA')).toEqual(localeCaESVALENCIA);
|
||||||
expect(findLocaleData('CA_es_Valencia')).toEqual(localeCaESVALENCIA);
|
expect(findLocaleData('CA_es_Valencia')).toEqual(localeCaESVALENCIA);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it(`should find the LOCALE_DATA if the locale id was registered`, () => {
|
||||||
|
expect(findLocaleData('fake-id')).toEqual(localeFr);
|
||||||
|
expect(findLocaleData('fake_iD')).toEqual(localeFr);
|
||||||
|
expect(findLocaleData('fake-id2')).toEqual(localeFrCA);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -143,8 +143,7 @@ switch (goog.LOCALE) {
|
||||||
${LOCALES.map(locale => generateCases(locale)).join('')}}
|
${LOCALES.map(locale => generateCases(locale)).join('')}}
|
||||||
|
|
||||||
if(l) {
|
if(l) {
|
||||||
l[0] = goog.LOCALE;
|
registerLocaleData(l, goog.LOCALE);
|
||||||
registerLocaleData(l);
|
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
|
|
@ -422,7 +422,7 @@ export interface PopStateEvent {
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @experimental */
|
/** @experimental */
|
||||||
export declare function registerLocaleData(data: any, extraData?: any): void;
|
export declare function registerLocaleData(data: any, localeId?: string | any, extraData?: any): void;
|
||||||
|
|
||||||
/** @stable */
|
/** @stable */
|
||||||
export declare class SlicePipe implements PipeTransform {
|
export declare class SlicePipe implements PipeTransform {
|
||||||
|
|
Loading…
Reference in New Issue