L'internationalisation avec angularjs
Je pense à mettre mon site à angularjs, et je veux commencer très petit, en déplaçant tous mes côté serveur statique de texte brut de template de django angulaire (sinon il y aura de la syntaxe de la difficulté avec le" {{}}').
Il semble que la meilleure façon de le faire sera l'une des deux options:
- D'avoir un appel ajax qui retourne un JSON avec tous les textes de mon site. Les textes seront stockées dans une variable qui est lié à ma éléments HTML donc angulaire sera mise à jour tout.
- Pour stocker statique fichier js avec le dictionnaire et l'inclure dans mon code HTML et de lier le dictionnaire avec angularjs.
Les deux options me permettra de basculer entre les langues sans avoir à recharger la page.
Lequel est le mieux? En général, est-ce une bonne approche ou est-il un plus bonne façon?
- Salut Uri, j'ai été jouer avec le même problème: l'intégration de la .les fichiers po utilisée par mon Django app(back-end) dans une application AngularJS (Front-end). Pouvez-vous me donner plus d'info sur comment vous avez atteint ce enfin? Les deux approches qui fonctionne pour moi, bien que je préfère la 1. 😉 Merci à l'avance.
- Suis allé avec l'option #2. C'était beaucoup plus simple et fait le travail.
- Comment je l'ai fait stackoverflow.com/questions/19881590/...
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, il y a un moyen de changer angulaire de séparateurs à d'autres signes, comme la réponse ici: Angular JS séparateur personnalisé
Les 2. option est plus facile. Vous incluez-le une fois et vous avez toutes les traductions de chargement de page. Pas d'appels asynchrones, pas de promesses, agréable et facile.
Et pourtant, j'irais avec la première. Des Services comme $translate vraiment faire de votre vie plus facile en suivant l'option 1. Et en Plus il a de nombreuses options pour le chargement et le stockage de données chargées dans le LocalStorage et des cookies, donc il ya beaucoup d'espace pour l'extension et de personnalisation. Ensuite, vous pouvez traduire votre contenu avec $service de traduction, d'une directive ou d'un filtre.
Et n'oubliez pas que 2 option désactive toutes les options de mise en cache de requêtes. Sur chaque votre demande à votre page de démarrage, le serveur doit lire fichier statique et de l'inclure dans le code html. Avec la première option, le navigateur de l'utilisateur peut mettre en cache .json pour aussi longtemps que vous le souhaitez.
J'ai essayé un peu de différentes options, y compris Angulaire de Traduire, mais j'ai bien aimé Angulaires-gettext le meilleur jusqu'à présent.
Une chose qui a aidé énormément, c'est que il y a un travail de démonstration pour le cas où elles l'i18n TodoMVC, appelé angulaires-gettext-exemple.
Le flux de travail est simple:
Je suis sûr que les autres solutions postées ici sont bons aussi, mais je n'ai pas vu un bout à l'exemple tellement bien organisé que angulaires-gettext-exemple.
Cheers,
JD
angular-gettext
un support pour les contextes? Ils sont utiles pour traiter avec les homonymes.AngularJS prend en charge il8n/L10n pour devise, la date et les numéros de filtres. Selon ce livre:
(désolé pour la piètre qualité! la cellule de l'appareil photo du téléphone)
Je dirais de suivre la première démarche et de la charge de la traduction de manière dynamique. Elle implique beaucoup de travail, mais il n'y a pas d'autre façon de contourner
Ont un coup d'oeil à angular-translate 🙂
Il résout les deux scénarios!