|
import { Component } from '@angular/core';
import { loadCldr, setCulture, Ajax, enableRipple } from '@syncfusion/ej2-base';
declare var window: Window & { culture: string };
//enable ripple style
enableRipple(true);
// Assign windoe variable culture.
window.culture = 'it';
// assign the culture to application globally.
setCulture(window.culture);
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
public cultureData: Object[] = [
{ Id: 'fr', country: 'French' },
{ Id: 'de', country: 'German' },
{ Id: 'it', country: 'Italian' }
];
// variable for preventing the culture files load multiple times
public loadedCultures: string[] = ['it'];
// maps the appropriate column to fields property
public fields: Object = { text: 'country', value: 'Id' };
public waterMark: string = 'Select a game';
// set the value to select an item based on mapped value at initial rendering
public value: string = 'it';
public onChange(args: any): void {
if (this.loadedCultures.indexOf(args.value) === -1) {
this.loadedCultures.push(args.value);
}
setCulture(args.value);
}
ngOnInit(): void {
this.loadedCultures.push(window.culture);
this.loadCultureFiles(window.culture);
}
loadCultureFiles(name: string) {
if (name === 'en-US') {
return;
}
let files: string[] = ['numbers.json', 'numberingSystems.json'];
let loadCulture = function (prop: any) {
let val: string, ajax: Ajax;
if (prop === files.length - 1) {
ajax = new Ajax('http://localhost:4200/assets/cldr-data/supplemental/' + files[prop], 'GET', false);
} else {
ajax = new Ajax('http://localhost:4200/assets/cldr-data/main/' + name + '/' + files[prop], 'GET', false);
}
ajax.onSuccess = function (value: any) {
val = value;
loadCldr(JSON.parse(val));
};
ajax.send();
};
for (let prop = 0; prop < files.length; prop++) {
loadCulture(prop);
}
}
}
|