Cordova+WinJS 应用本地化

Localization in Cordova+WinJS application

我正在尝试使用 "WinJS Navigation Template for Apache Cordova" ( https://code.msdn.microsoft.com/windowsapps/WinJS-Navigation-Template-50112ea9/view/SourceCode ) 构建示例 WinJS 应用程序。

向该应用程序添加本地化的正确方法是什么? WinJS 方式的标准 - 使用 strings/en-US/resources.resjson - 不起作用。

我认为您遗漏了对那些语言环境文件资源的处理。它应该在 pages/home/home.js on ready 处理程序上。像这样

ready: function (element, options) {
    WinJS.Resources.processAll();
    .
    .
    .
}

这利用了本地化并将其替换到使用它们的地方。

WinJS.Resources.processAll() 在 Cordova 应用程序中似乎不起作用的原因是因为 WinRT 运行时在浏览器托管的应用程序中不可用

这并没有直接写在文档中,而是隐含在 Application resources and localization sample:

// WinRT is not available in the web compartment, so we must load strings ourselves 
// File based resources can be used to load the correct strings 
WinJS.xhr({ url: '/strings/resources.json' }).done(function (response) { 
    strings = JSON.parse(response.responseText); 

    WinJS.Resources.processAll(); 
    showMessage(); 
});