使用 WebPack 在 Syncfusion Ej2 中实现国际化

Internationalization in Syncfusion Ej2 with WebPack

我正在尝试在 Angular-Cli 中使用 Syncfusion EJ2 的国际化功能和 WebPack,这是有问题的,因为所有文档都使用 SystemJs。

特别是我正在尝试使用这个 sample

import { L10n, loadCldr, setCulture, setCurrencyCode } from '@syncfusion/ej2-base';
import * as currencies from './currencies.json';
import * as cagregorian from './ca-gregorian.json';
import * as numbers from './numbers.json';
import * as timeZoneNames from './timeZoneNames.json';
import * as numberingSystems from './numberingSystems.json';
import { Component, OnInit } from '@angular/core';
import { data } from './datasource';

loadCldr(currencies, cagregorian, numbers, timeZoneNames, numberingSystems);

setCulture('de-DE');
setCurrencyCode('EUR');

我试过了但无法正常工作,我被这个错误困住了:

 Cannot find module './numberingSystems.json'

我应该对示例进行哪些更改?

为了在 typescript 中导入 json 文件,我们需要在通配符模块声明 (https://www.typescriptlang.org/docs/handbook/modules.html#wildcard-module-declarations) 中包含 json 类型。在 typings.d.ts 文件中使用以下声明代码来解决编译问题。

declare module "*.json" {
  const value: any;
  export default value;
}

注意:您还可以通过安装 npm 包 cldr-data 来使用 cldr json 文件。此软件包包含所有文化 json 文件。