Comment traduire Angular-UI-Bootstrap datepicker?
La documentation pour le datepicker (Angle-UI-BootStrap) rapports:
Tout est formaté à l'aide de la filtre de date et est donc également
localisée.
La vérification de la documentation de l' filtre de date peut avoir accès à la notion de i18n et i10n pour AngularJs. Cependant, les deux approches qui sont fournis, ne peut pas être utilisé dans mon application. Les deux approches sont les suivantes:
- Pré-livré des ensembles de règles
- Y compris les paramètres régionaux js script dans index.html page
Dans mon application, j'ai vérifier la langue du client après qu'il avait effectué de connexion. Donc, mon index.html la page est déjà créé et configuré.
Il n'y a pas d'autre façon de traduire le datepicker? Dynamique d'une façon... quelque chose comme la modification d'une valeur de $champ d'application qui modifie l'interface de l'exécution de la traduction du composant?
Voici un plunker démontrant l'approche de l'introduction dans le index.html la traduction pour le pt-BR.
Mise à jour:
J'ai posé cette question dans un question de l'Angle-UI-Bootstrap, et voici la réponse que j'ai reçu de @bekos:
@ThCC Le vrai problème est que vous ne pouvez pas modifier votre $locale au cours de
de l'exécution, ou, au moins, je ne connais pas de moyen de le faire. Même si vous
résoudre le problème avec le datepicker, vous allez encore avoir des problèmes dans le
tous les autres filtre des paramètres régionaux dépendant, comme de la monnaie. Je pense que c'
vaut mieux poser une question plus générale dans le AngularJS questions.
Si quelqu'un a une autre solution est toujours la bienvenue. Si je reçois une solution, je reviens.
- double possible de AngularJS/Angular-ui-bootstrap de Changer la langue utilisée par le datePicker
- La question peut être la même, mais le contexte qui a conduit à la formulation de la question est différente.
- Bonjour. Est-il possible de changer la langue sans l'ajout de la langue de script ?
Vous devez vous connecter pour publier un commentaire.
Quelqu'un a dit [Le vrai problème est que vous ne pouvez pas modifier votre $locale au cours de l'exécution]. En fait, vous pouvez. Vous pouvez voir un plunker ici.
ngModel.$render()
- voir ma réponse.Vous pouvez créer votre propre directive comme ceci:
Le nom de la directive doit être
datepickerPopupWrap
, il est donc effectuée avec la valeur par défaut de l'interface utilisateur-bootstrap directive qui rend le popup.Ensuite, chaque fois que vous modifiez les paramètres régionaux avec
angulaire dynamique locale
, faites ceci:Je n'étais pas heureux à l'aide de la donnée approches, donc j'ai pensé à cette un en utilisant angular-translate et la possibilité, pour remplacer le angular-ui-bootstrap-modèles comme ceci (Source de
ui-bootstrap-tpls.js
):Pour
uib/template/datepicker/day.html
:Pour
uib/template/datepicker/month.html
:Vous avez également besoin d'étendre votre fichier de langue par (c'est pour la langue allemande):
Et depuis le mois de la datepicker est originairement rendu comme
{{title}}
provied parscope.title = dateFilter(this.activeDate, this.formatDayTitle);
(ligne 2216 dansui-bootstrap-tpls.js
), vous devez charger un filtre à localiser le mois en cours (Merci à ce post):Je pense que cette solution est au moins aussi moche que les autres hacks qui ont été inventés ici, mais vous n'avez pas à déclencher des rafraîchissements ou des choses similaires par vous-même.