次の理由により、私はより複雑な問題を抱えていました。
- 「pl」ロケールを追加したかった
- TypeScriptで動作するために必要でした
これらの目標を達成するためのより簡単な方法があることを知りたいのですが、最終的に機能させるために私が行った手順は次のとおりです。
ステップ1。$ meteor add momentjs:moment
ステップ 2. ファイルhttps://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/moment/moment-node.d.tsをダウンロードし、./typings/moment/moment.d.ts として保存します (何らかの理由でmoment-node.d.ts を参照するほぼ空のhttps://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/moment/moment.d.tsファイルのみをダウンロードするため、実行するだけでtypings install dt~moment--global --save
はうまくいきません。実際のものを含むファイル)
ステップ 3.次の行を moment.d.ts に追加します。
declare module "meteor/momentjs:moment" {
var moment: moment.MomentStatic;
}
ステップ 4. https://raw.githubusercontent.com/moment/moment/develop/locale/pl.js (またはその他のロケール) をダウンロードし、./client/lib/moment/locale/pl.js (または./client 以下の他のディレクトリ)
ステップ 5. ./client/lib/moment/locale/pl.js の最初と最後を編集し、ローダー コードを最初の 1 行に置き換えます。
import { moment } from 'meteor/momentjs:moment';
ステップ 6. 最後に、任意のモジュールでモーメント js を使用できます。追加するだけです
import { moment } from "meteor/momentjs:moment";
ファイルの先頭で、たとえば次のことができます。
moment(ts).locale('pl').format('LLL');
「meteor/tap:i18n」パッケージを使用している場合は、TAPi18n.setLanguage(...);
起動時に渡した言語と同じ言語を使用することをお勧めします。でtypings/globals/meteor_tap_i18n.d.tsファイルを作成する必要があるかもしれません
declare module "meteor/tap:i18n" {
export var TAPi18n : TAPi18nStatic;
interface TAPi18nStatic{
setLanguage(name:string):any;
getLanguage():string;
__(name:string,params?:any):string;
}
}
そして、モジュールでそれを使用できます
import { TAPi18n } from 'meteor/tap:i18n';
//...
moment(ts).locale(TAPi18n.getLanguage()).format('LLL');