IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AngularJS Discussion :

Comment est attribué $locale ? oO


Sujet :

AngularJS

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 125
    Points : 149
    Points
    149
    Par défaut Comment est attribué $locale ? oO
    Bonjour le monde et merci d'avoir cliqué et de vous retrouver ici .

    Voilà je commence enfin à me lancer dans un petit projet "MEAN stack" et quelque chose me turlupine .

    Sans plus attendre, le code super simple qui m'a amené à mon questionnement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // dans mon contrôleur je déclare une date
    date: new Date('08/06/2014'),
    ...
    ... 
    // dans ma page je l'affiche avec un filtre
    {{article.date | date:'d MMM yyyy'}}
    Ainsi, tout fonctionne et j'ai ce résultat :
    6 Aug 2014
    C'est bien beau mais je suis en France, angular est donc censé me donner une date en français...
    Pour vérifier j'affiche donc $locale.id et j'obtiens comme résultat : "en-us"... ?

    D'où ma question, comme angular détermine-t'il les variables de localisation ?
    J'ai testé avec mes 4 navigateurs et j'ai le même résultat, pourtant avec ces mêmes navigateurs, sur tous les sites que je visite, il ne fait aucun doute que la localisation est bonne et doit être "fr-fr".

    J'ai cherché sur internet et j'ai trouvé des solutions pour imposer une $locale, mais ici je cherche plutôt à savoir par quelle magie angular a déterminé que j'étais aux us.
    J'ai d'abord pensé que par défaut la $locale était fixée à "en-us" et qu'il fallait écrire dans "angular.min.js" pour imposer sa propre locale (comme indiquée dans la doc angular), mais ça me parait aberrant car l'utilité d'une locale c'est justement d'écrire "6 Aout" si on se trouve en france et "6 أغسطس" si on est en egypte...

    Du coup je viens à vous, si quelqu'un sait ou a des pistes, merci d'avance .


    EDIT : J'ai testé depuis un serveur express en callback (localhost), même si je pense que ça n'a aucune importance car la locale est déterminée en fonction du client, je précise quand même.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 125
    Points : 149
    Points
    149
    Par défaut
    J'ai été voir le code source (ce que j'aurais du faire bien plus tôt ) : https://github.com/angular/angular.j...g/locale.js#L3
    Du coup c'est bien ce que j'avais présumé, il faut écraser le $localeProvider avec celui de notre pays (comme expliqué dans la doc : https://docs.angularjs.org/guide/i18n).

    Il y a donc plusieurs manières de s'en sortir mais en gros j'ai opté pour ça :

    Si on souhaite une redirection automatique en fonction de la langue :

    On passe par le serveur pour déterminer la langue par défaut puis on modifie et on charge le fichier à servir contenant les locales.
    Dans notre code client, on appelle le .js, typiquement avec une balise <script src="..." ></...
    Une fois le fichier de locale appelée on vérifie la locale avec $locale.id.

    Si on veut laisser le choix à l'utilisateur avec 2 gentils drapeaux permettant de switcher :

    On crée des routes sur angular ../en ../fr ou/et autres et en fonction de la route on charge le fichier de localisation approprié.
    Problème : à moins de passer par require.js ou ce genre de lib., il vaut mieux faire ça depuis le serveur qui devra donc gérer le routage /en ou /ck. La page s'actualisera donc à chaque changement de lange.

    Vive angular

Discussions similaires

  1. dnsmasq: comment est attribué l'ip ?
    Par Zwiter dans le forum Réseau
    Réponses: 0
    Dernier message: 15/01/2015, 22h54
  2. Comment est géré l'événement OnTime du Composant TTimer?
    Par Arnaud-h dans le forum C++Builder
    Réponses: 3
    Dernier message: 02/06/2004, 17h10
  3. Comment est financé developpez.com ?
    Par BuG dans le forum Evolutions du club
    Réponses: 9
    Dernier message: 19/06/2003, 11h03
  4. Réponses: 5
    Dernier message: 25/03/2003, 17h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo