web-dev-qa-db-ja.com

angularjsフィルター 'date'と$ localeサービス

angularjsはいくつかの国際化されたリソースを埋め込んでいるようです:

Angularは、日付、数値、通貨のフィルターでi18n/l10nをサポートしています。さらに、AngularはngPluralizeディレクティブによるローカライズ可能な複数化のサポートをサポートします。ローカライズ可能なすべてのAngularコンポーネントは、$ localeサービスによって管理されるロケール固有のルールセットに依存します。

見つかった場合 $locale service しかし、fr-frでロケールを指定する方法を知らない...

次のコード:

{{article.date_collected | date:'EEEE dd MMMM yyyy'}}

与える:

2014年10月6日月曜日

でも私はしたい :

ルンディ2014年10月6日

助言がありますか?

15

最後に、angular github page: https://github.com/angular/bower-angular-i18n#bower-angular-i18n で応答を見つけました

編集:私のために働いたものの詳細情報

ルートアプリディレクトリに、bowerからリソースをインストールします

bower install angular-i18n

Bower/buildjsを使用してすべてのスクリプトを<script>ファイルに圧縮する場合は、このコメントタグの間のindex.htmlにvendor.jsを追加します。

<!-- endbower -->
<script src="bower_components/angular-i18n/angular-locale_fr-fr.js"></script>
<!-- endbuild -->

それでおしまい。

27

https://docs.angularjs.org/guide/i18n の使用例

1)angular repoから、またはbowerを介して、たとえば//raw.githubusercontent.com/angular/bower-angular-i18n/master/angular-locale_fr-fr.jsから必要なロケールを取得します

2)angularライブラリの後にそれを含めます。

<script src="vendor/angular.min.js"></script>
<script src="vendor/angular-locale_fr-fr.js"></script>

3)これで、ng日付フィルターを使用して日付を表示するときは常に、米国英語形式ではなく、フランス語-フランス形式になります。

{{date | date: 'fullDate'}}

いくつかのローカルをプログラムで処理する方法も必要です。これは、AngularJSホームページの「ビールカウンター」の例で行われます。

angular.module('app-us', ['app', 'ngLocal.us']);
angular.module('app-sk', ['app', 'ngLocal.sk']);

そして

<script src="//code.angularjs.org/1.4.4/i18n/angular-locale_sk.js"></script>
<script>
angular.module('ngLocal.sk', [])._configBlocks.Push(angular.module('ngLocale')._configBlocks[0]);
</script>
<script src="//code.angularjs.org/1.4.4/i18n/angular-locale_en-us.js"></script>
<script>
angular.module('ngLocal.us', [])._configBlocks.Push(angular.module('ngLocale')._configBlocks[0]);
angular.bootstrap(document, ['ngRoute', 'homepage', 'ngLocal.us']);
</script>

そして、これを行うためのよりクリーンな方法を次に示します。 https://github.com/lgalfaso/angular-dynamic-locale

8
pansay