WinJS.Resources.getString 使用非 WinRT 应用

WinJS.Resources.getString with non-WinRT apps

我正在使用 WinJS 4.0 开发 Cordova 应用程序。但是我尝试使用 WinJS.Resources.getString 但它不起作用。它与我的 Windows 8.1 应用程序完美配合。 有什么方法可以将它与 Cordova 一起使用吗?如果不是,我应该使用哪种替代解决方案?请给我一个答案。非常感谢。

是的,你可以这样做,但不能直接这样做。

在调用 WinJS.UI.processAll 之前,您必须阅读 resjson 并设置全局 "strings" 变量:

var loadLocalRessources = function (language) {
   language = language || 'en';
    return new WinJS.Promise(function (complete, error) {
        var url = './strings/' + language + '/resources.resjson';
        console.log('trying to load resources from ' + url);

        WinJS.xhr({ url: url }).then(function (res) {
            console.log('resource ok for ' + language);
            try {
                window.strings = JSON.parse(res.responseText);
            } catch (exception) {
                console.error('resource parse error ' + exception.message);
            }
            complete(window.strings);
        }, function (err) {
            console.error('resource load error for ' + language + ' ' + err.statusText);
            if (language != 'en') {
                data.loadLocalRessources('en').then(complete, error);
            }
            else {
                error(err);
            }
        });
    });

}

http://mcnextpost.com/2015/03/05/how-to-use-winjs-resources-with-a-cordova-app/