javascript - RequireJS: how to add a prefix to path -


i'm developing spa using knockout.js v3 , requirejs.

i have ko components written this:

define(['text!settings.html'],     function( htmlstring) {         'use strict';         function settingsviewmodel(params) {            ...        }         // return component definition         return {             viewmodel: settingsviewmodel,             template: htmlstring         };     }); 

now want support localization , have duplicated html each supported language, example:

en/settings.html de/settings.html se/settings.html 

i let user change language , refresh app new language, possible instruct require text plugin add language prefix html, when write:

text!settings.html 

it load:

text!de/settings.html 

not sure if can let text plugin prefix urls. might able create custom template loader:

var templatefromlanguageurlloader = {     loadtemplate: function(name, templateconfig, callback) {         if (templateconfig.languageurl) {             // language config or default language             var lang = templateconfig.lang || 'de';             var fullurl = lang + '/' + templateconfig.languageurl;             $.get(fullurl, function(markupstring) {                 ko.components.defaultloader.loadtemplate(name, markupstring, callback);             });         } else {             // unrecognized config format. let loader handle it.             callback(null);         }     } };  // register ko.components.loaders.unshift(templatefromlanguageurlloader ); 

then component this:

define([],     function() {         'use strict';         function settingsviewmodel(params) {            ...        }         // return component definition         return {             viewmodel: settingsviewmodel,             template: {                  languageurl: 'settings.html',                 language: 'nl' // overwrite default             }         };     }); 

Comments

Popular posts from this blog

c++ - OpenMP unpredictable overhead -

ruby on rails - RuntimeError: Circular dependency detected while autoloading constant - ActiveAdmin.register Role -

javascript - Wordpress slider, not displayed 100% width -