La localisation de modèles à l'aide de require.js, de la colonne vertébrale et le trait de soulignement

Cette question porte sur la création de modèles et de localiser, à l'aide de require.js et de souligner des modèles par le biais de backbone.js. L'application devra être localisée à la volée.

Avant de se lancer dans une voie qui plus tard s'est avéré problématique, est-il une meilleure solution que celle que je suis en train d'étudier - je suis préoccupé par la vitesse et de la mémoire à plusieurs reprises avec la fusion et de traitement de la langue matrice. Supposons que sont les 2-3 mille chaînes de langue.

Approche actuelle (qui fonctionne, mais il semble processeur lourd):

  1. À l'aide de la I18N regroupement approche, créer de la langue "comprend" qui contiennent essentiellement de la traduction des éléments pour tous les modèles
  2. De fusion de cet objet/tableau d'éléments avec les attributs de modèle (à partir de la colonne vertébrale), et de passer à la fusion de beaucoup dans le trait de soulignement modèle

.

define(['backbone', 'models/model', 'text!template.html', 'i18n!my/nls/translatedbits'],
  function(Backbone, MyModel, TemplateText, TranslationObject) {
  var View = Backbone.View.extend({
    model: {},

    initialize : function(params) {
      this.model = new MyModel();
    },

    render : function(callBack) {
      //Get the model attributes
      var templateParams = _.clone(this.model.attributes);
      //Bolt on the tranlsated elements (established from require.js I18N plugin)
      templateParams.t = TranslationObject;
      //Pass the lot ot the template
      var template = _.template(TemplateText, this.model.attributes);
      $(this.el).html( template );
      return this;
    }

  });
  return View;
  }
);

Ensuite, le modèle permettra de lire

<%= modelAttribute1 %> <%= t.translationString1 %>

Est-il une meilleure solution ou d'un meilleur moteur de template? [Mieux pour ce but - moustache peut avoir d'autres avantages, mais peut-on localiser plus facilement, ou peut-on le cache localisée résultats permettant attributs de modèle à être passé au plus tard?]

Remarque que les langues devrez peut-être modifier "à la volée" - et c'est un autre souci que j'ai avec le plugin I18N. J'ai peut-fin de compte les opérations en JSON demande par le biais d'un modèle, mais il faut quand même une fusion des objets, qui est ce que j'essaie d'éviter.

Comment parler de pré-compilation de modèles dans les fichiers JavaScript basé sur des chaînes de langue (que Vous avez un fichier JavaScript contenant les chaînes du modèle, par langue - Une pour l'anglais, une autre pour les français.)? Lorsque l'utilisateur met à jour sa langue de préférence, en charger une autre JavaScript fichier de modèle pour gérer tous les "statique" de la traduction, mais laissez les attributs de modèle derrière, car ceux-ci sont dynamiques.
merci. Il existe deux méthodes que j'ai vu le long de ces lignes. On obtient un peu délicate avec l'exigent, mais je considère que la création d'un modèle, puis le chargement de chacun en cas de besoin (par le biais de besoin), pré-analyse et mise en cache etc et puis rappelant le modèle de la le modèle dans la vue(s). Une autre option est de pré-compilation côté serveur (php ou node.js) et de rappeler le modèle par le biais de JSON, mais encore besoin que la mise en cache du modèle dans le milieu. Mais je pense que il doit y avoir une meilleure façon standard? Sauf si ce sont les seules options? Merci pour la suggestion.

OriginalL'auteur Robbie | 2012-10-10