Explorar el Código

Lazily call parseJSON on translation data.

Also, moved locales.js to ./src folder.
Add it as dependency to utils.js and remove it from the deps scripts
JC Brand hace 10 años
padre
commit
8478b432c3
Se han modificado 10 ficheros con 52 adiciones y 22 borrados
  1. 1 3
      converse.js
  2. 0 1
      dev.html
  3. 0 12
      locale/locales.js
  4. 1 1
      main.js
  5. 0 1
      src/deps-full.js
  6. 0 1
      src/deps-no-otr.js
  7. 0 1
      src/deps-website-no-otr.js
  8. 0 1
      src/deps-website.js
  9. 46 0
      src/locales.js
  10. 4 1
      src/utils.js

+ 1 - 3
converse.js

@@ -225,6 +225,7 @@
 
         // Translation machinery
         // ---------------------
+        this.i18n = settings.i18n ? settings.i18n : locales.en;
         var __ = $.proxy(utils.__, this);
         var ___ = utils.___;
 
@@ -250,7 +251,6 @@
             forward_messages: false,
             hide_muc_server: false,
             hide_offline_users: false,
-            i18n: locales.en,
             jid: undefined,
             keepalive: false,
             message_carbons: false,
@@ -282,8 +282,6 @@
         // Allow only whitelisted configuration attributes to be overwritten
         _.extend(this, _.pick(settings, Object.keys(default_settings)));
 
-        this.jed = new Jed(this.i18n);
-
         if (settings.visible_toolbar_buttons) {
             _.extend(
                 this.visible_toolbar_buttons,

+ 0 - 1
dev.html

@@ -17,7 +17,6 @@
 </head>
 
 <body id="page-top" data-spy="scroll" data-target=".navbar-custom">
-
     <nav class="navbar navbar-custom navbar-fixed-top" role="navigation">
         <div class="container">
             <div class="navbar-header page-scroll">

+ 0 - 12
locale/locales.js

@@ -1,12 +0,0 @@
-/*
- * This file specifies the language dependencies.
- *
- * Translations take up a lot of space and you are therefore advised to remove
- * from here any languages that you don't need.
- */
-
-(function (root, factory) {
-    define("locales", ['jquery', 'jed', 
-        ], function ($, Jed, af, de, en, es, fr, he, hu, id, it, ja, nb, nl, pl, pt_BR, ru, zh) {
-        });
-})(this);

+ 1 - 1
main.js

@@ -56,7 +56,7 @@ require.config({
         "otr":                  "src/otr",
 
         // Locales paths
-        "locales":   "locale/locales",
+        "locales":   "src/locales",
         "jed":       "components/jed/jed",
         "af":        "locale/af/LC_MESSAGES/converse.json",
         "de":        "locale/de/LC_MESSAGES/converse.json",

+ 0 - 1
src/deps-full.js

@@ -3,7 +3,6 @@ define("converse-dependencies", [
     "utils",
     "otr",
     "moment",
-    "locales",
     "backbone.browserStorage",
     "backbone.overview",
     "jquery.browser",

+ 0 - 1
src/deps-no-otr.js

@@ -2,7 +2,6 @@ define("converse-dependencies", [
     "jquery",
     "utils",
     "moment",
-    "locales",
     "backbone.browserStorage",
     "backbone.overview",
     "jquery.browser",

+ 0 - 1
src/deps-website-no-otr.js

@@ -2,7 +2,6 @@ define("converse-dependencies", [
     "jquery",
     "utils",
     "moment",
-    "locales",
     "bootstrapJS", // XXX: Can be removed, only for https://conversejs.org
     "backbone.browserStorage",
     "backbone.overview",

+ 0 - 1
src/deps-website.js

@@ -3,7 +3,6 @@ define("converse-dependencies", [
     "utils",
     "otr",
     "moment",
-    "locales",
     "bootstrapJS", // XXX: Only for https://conversejs.org
     "backbone.browserStorage",
     "backbone.overview",

+ 46 - 0
src/locales.js

@@ -0,0 +1,46 @@
+/*
+ * This file specifies the language dependencies.
+ *
+ * Translations take up a lot of space and you are therefore advised to remove
+ * from here any languages that you don't need.
+ */
+(function (root, factory) {
+    define("locales", ['jquery', 'jed', 
+        'text!af',
+        'text!de',
+        'text!en',
+        'text!es',
+        'text!fr',
+        'text!he',
+        'text!hu',
+        'text!id',
+        'text!it',
+        'text!ja',
+        'text!nb',
+        'text!nl',
+        'text!pl',
+        'text!pt_BR',
+        'text!ru',
+        'text!zh'
+        ], function ($, Jed) {
+            root.locales = {
+                'af':     arguments[2],
+                'de':     arguments[3],
+                'en':     arguments[4],
+                'es':     arguments[5],
+                'fr':     arguments[6],
+                'he':     arguments[7],
+                'hu':     arguments[8],
+                'id':     arguments[9],
+                'it':     arguments[10],
+                'ja':     arguments[11],
+                'nb':     arguments[12],
+                'nl':     arguments[13],
+                'pl':     arguments[14],
+                'pt-br':  arguments[15],
+                'ru':     arguments[16],
+                'zh':     arguments[17]
+            };
+            return root.locales;
+        });
+})(this);

+ 4 - 1
src/utils.js

@@ -4,7 +4,7 @@
     } else {
         root.utils = factory(jQuery, templates);
     }
-}(this, function ($, templates) {
+}(this, function ($, templates, locales) {
     "use strict";
 
     var XFORM_TYPE_MAP = {
@@ -58,6 +58,9 @@
             if (typeof this.i18n === "undefined") {
                 this.i18n = locales.en;
             }
+            if (typeof this.i18n === "string") {
+                this.i18n = $.parseJSON(this.i18n);
+            }
             if (typeof this.jed === "undefined") {
                 this.jed = new Jed(this.i18n);
             }