2017-09-15 12 views
5

WebPackでAngular-CliのSyncfusion EJ2の国際化機能を使用しようとしていますが、すべてのドキュメントでSystemJが使用されているため問題があります。特にWebfackを使用したSyncfusion Ej2の国際化

私は http://plnkr.co/edit/4uA2rb0Q2FrLLK6V4sne

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'); 

このサンプルを使用しようとしている私は、このエラーにこだわっている、しようとしたが、それが動作するように作ることができなかった: は、モジュールの./numberingSystemsを見つけることができません。 json '

サンプルを変更する必要がありますか?

答えて

8

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データをインストールすることにより、CLDRのJSONファイルを使用することができます。このパッケージにはすべてのculture jsonファイルが含まれています。

+0

期待どおりに動作します。ありがとうございます。私はclrd-dataパッケージをインストールしました。私はこの方法でファイルをインポートしています。 import *は「../../node_modules/cldr-data/main/es-AR/numbers.json」からの数字です。 "良い"方法がありますか? –

+0

以下のスニペットで説明したように、requireを使用してJSONファイルをインポートすることもできます。 loadCldr(require( '../../ node_modules/cldr-data/main/de/numbers.json')); anguar-cliアプリでrequireを使用するには、以下のようにtypings.d.tsファイルのrequireを宣言する必要があります。 declare var require:any; –