2017-01-18 8 views
1

スケジュールロケールの設定に問題があります。PrimeNGスケジュールロケール

文書では、そのロケールはオブジェクト({locale: 'en'})によって設定できますが、英語以外の言語は表示されません。

別の言語を設定したい場合、どうすればよいですか?

<p-schedule 
       [events]="events" 
       [locale]="???" 
       [header]="header" 
       [editable]="false" 
       [allDaySlot]="false" 
       [defaultView]="'agendaWeek'" 
       (onEventClick)="goToSelectedEvent($event)" 
       [eventRender]="eventRender" 
       [contentHeight]="800" 
     ></p-schedule> 

答えて

1

"fullcalendar/dist/lang/'your language'"が必要です。

その後、あなたは単にあなたがここで見つけることができます

this.locale = { 
     locale: 'your language' 
}; 

すべての使用可能な言語を追加することができますfullcalendar github

0

しかし、それは、マニュアルですぐそこです:

Localization for different languages and formats is defined by binding the settings object to the locale property. Following is a schedule with Spanish month names.

テンプレート

<p-schedule [events]="events" [locale]="es"></p-schedule> 

コンポーネント

export class MyComponent { 

    es: any; 

    ngOnInit() { 
     this.es = { 
      monthNames: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 
       'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'] 
     }; 
    } 
} 

利用可能なオプションについては、fullcalendarのドキュメントを参照してください。既存の翻訳はhereです。

+0

完全なカレンダーの言語がいくつかありますが、それらはハードコーディングされずに正常に動作します。だから私はすべてのロケール設定をハードコードする必要がありますか? –

+0

ハードコードなしで設定できるかどうかは疑問でした。 –

+0

私はこれらの翻訳を手に入れる角度サービスをセットアップする必要があると思います – PierreDuc

0

を悲しいことに、私はコメントを書き込むための十分な評判を持っていないので、私は追加する必要があります別の答え... 私は現時点で同じ問題に直面していますが、今は翻訳をハードコーディングしました(fullcalendarロケールファイルからコピーしました)。 しかし、私はむしろ既存の翻訳を使うだけです!あなたはあなたのコンポーネントの中でロケールファイルをどのようにインポートして使用したかに関する情報をもう少し教えてください。私は角度2のアプリケーションの中でそのような外部のjavascriptファイルを "必要とする"方法を本当に知りませんし、あなたの助けに感謝します! :)

EDIT: [OK]を、私は少し周りをいじって、私のために働いている解決策を見つけた:

私は(「スクリプト」キーの下)私の角度-CLI設定にロケールファイルを追加し、私はロケールをp-scheduleコンポーネントの[locale]入力として文字列を設定するだけで使用しています。微調整のために、 "options"入力を使用し、 "eventTextColor"などのようなものを設定して、デフォルトのものを使用しません。 angular2-」と

import { Component, OnInit, Input } from '@angular/core'; 
import { Options, Header, EventObject } from 'fullcalendar'; 

@Component({ 
    selector: 'your-selector', 
    templateUrl: './your.component.html', 
    styleUrls: ['./your.component.css'] 
}) 
export class YourComponent implements OnInit { 
    private locale = 'de'; 

    private options: Options = { 
    eventTextColor: '#ffffff', 
    slotLabelFormat: 'HH:mm', 
    ... 
    } 
} 
+0

私はすべての私の外部ライブラリを読み込むためにwebpackを使用しています。だから私はそこに言語パックが必要です。 –

+0

こんにちは、迅速な対応に感謝します。私はangular-cli(webpackも使用しています)を使用し、ロケールファイルへの参照を "scripts"配列に置きます。これは、のように入力として文字列を設定しても機能しますが、「終日」のようないくつかの欠陥が正しく翻訳されていて、変更したいデフォルトのイベントカラーです。では、ロケール文字列を入力として使用するのではなく、fullCalendarロケールオブジェクトを取得し、p-scheduleコンポーネントに渡す前にいくつかの値を変更する方法がありますか? – Jay

+0

イベントオプションは、cssおよびeventRender関数を使用して変更できます。ロケールについて - 実際に私は見つけられませんでした。あなた自身で変更する方法は、自分の手で作成することです。(しかし、libの言語ロケールを変更してgithubに変更を加えることができます! –

0

私はprimeng 2.0.6を使用しています、3.4.0 fullcalendar:

HTML::

<p-schedule [locale]="locale" [options]="options"></p-schedule> 

your.component.ts結果はそのような何かに見えます流星 "0.7.1図書館。これは私のために働いていたものです:私はscheduledemoに設定した

  1. https://www.primefaces.org/primeng/#/scheduleを1として。HTMLファイル

    <p-schedule ... locale="fr"> 
    
  2. 私は私のindex.htmlの頭部セクションの下の輸入を追加しましたhttps://fullcalendar.io/docs/text/locale/を1として(これはフランス語のためである)

    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/locale/fr.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.4/build/jquery.datetimepicker.full.min.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.4.0/fullcalendar.min.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.4.0/locale/fr.js"></script> 
    

あなたの場合私はそれらが.jsファイルの "スクリプト"セクションに追加されるべきであると信じています、またはファイルの.cssのための "スタイル"、index.htmlの代わりに.angular-cli.json。このファイルでは、node_modulesにあるファイルを参照することさえできます。たとえば、あなたが最新のprimengソースコード内のファイルを見ることができます(以下のコードは完全に、ロケールの問題を解決することはできません、それだけで.angular-cli.jsonの構文の例を与えることです):

"styles": [ 
    "../node_modules/fullcalendar/dist/fullcalendar.min.css", 
    ... 
    ], 
    "scripts": [ 
    "../node_modules/moment/moment.js", 
    "../node_modules/fullcalendar/dist/fullcalendar.js", 
    ], 

メモ1:私の例のように1つの言語ファイルを使用しているのであれば、scheduleemo.html(fullcalendarドキュメント:If you are simply loading one locale, you do not need to specify the locale option)の手順1を実行する必要はありません。

注2:「:e.fullCalendar.datepickerLocaleは関数ではありませんキャッチされない例外TypeErrorを」、私の解決策は、この問題を修正するあなたは、言語ファイルをロードしてもらうために「必要」を使用しようとします。 (あなたは実際に「必要とする」必要はありません)