【问题标题】:Internationalization in Syncfusion Ej2 with WebPackSyncfusion Ej2 与 WebPack 的国际化
【发布时间】:2018-02-24 04:11:57
【问题描述】:

我正在尝试通过 WebPack 在 Angular-Cli 中使用 Syncfusion EJ2 的国际化功能,这是有问题的,因为所有文档都使用 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'

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

【问题讨论】:

    标签: angular webpack syncfusion


    【解决方案1】:

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

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

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

    【讨论】:

    • 现在可以正常工作了,谢谢。我安装了 clrd-data 包,我以这种方式导入文件 import * as numbers from '../../node_modules/cldr-data/main/es-AR/numbers.json';有没有“更好”的方法?
    • JSON 文件也可以使用下面 sn-p 中提到的 require 导入。 loadCldr(require('../../node_modules/cldr-data/main/de/numbers.json'));为了在 anguar-cli 应用程序中使用 require,我们需要在 typings.d.ts 文件中声明 require 如下 sn-p declare var require: any;
    猜你喜欢
    • 2022-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多