web-dev-qa-db-fra.com

angularjs filtre le service «date» et $ locale

il semble que angularjs intègre des ressources internationalisées:

Angular prend en charge i18n/l10n pour les filtres de date, de nombre et de devise. De plus, Angular prend en charge la prise en charge de la pluralisation localisable via la directive ngPluralize. Tous les composants localisables Angular dépendent des ensembles de règles spécifiques aux paramètres régionaux gérés par le service $ locale.

Si trouvé, le $locale service mais ne savez pas comment spécifier les paramètres régionaux en fr-fr ...

Le code suivant:

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

Donne:

Lundi 06 octobre 2014

Mais je veux :

Lundi 06 octobre 2014

Aucune suggestion?

15
Patrick Ferreira

Enfin, j'ai trouvé la réponse sur la page angular github: https://github.com/angular/bower-angular-i18n#bower-angular-i18n

EDIT: plus d'informations sur ce qui a fonctionné pour moi

Dans votre répertoire d'application racine, installez les ressources de bower

bower install angular-i18n

Ajouter un <script> à votre index.html entre ces balises de commentaires si vous utilisez bower/buildjs pour compacter tous vos scripts en vendor.js fichier :

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

C'est tout.

27
Patrick Ferreira

Exemple d'utilisation, selon https://docs.angularjs.org/guide/i18n

1) obtenez les paramètres régionaux dont vous avez besoin à partir du repo angular ou via bower, par exemple //raw.githubusercontent.com/angular/bower-angular-i18n/master/angular-locale_fr-fr.js

2) l'inclure après la bibliothèque angular, par ex.

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

3) Désormais, chaque fois que vous affichez une date à l'aide du filtre de date ng, elle sera en français-France, et non en anglais américain, par ex.

{{date | date: 'fullDate'}}

Il doit également y avoir un moyen de gérer plusieurs sections locales par programmation, cela se fait sur l'exemple de "compteur de bière" de la page d'accueil d'AngularJS, avec

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

et

<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>

Et voici une façon plus propre de le faire: https://github.com/lgalfaso/angular-dynamic-locale

8
pansay