This works for me when testing different languages without switching through control panel:
Note the lowercase primaryLanguageOverride and that it is done just before loading the resources.
Also note the registry with the contextchanged event, this changes the app language on the fly when the user switches the language through control panel.
app.onactivated = function (args) {
args.setPromise(WinJS.UI.processAll().done(function () {
// Load resources.
loadResources();
// Enable listener so they get updated when user changes language selection.
WinJS.Resources.addEventListener("contextchanged", loadResources);
// ...
});
};
function loadResources() {
// Test French language, comment out to use default language.
Windows.Globalization.ApplicationLanguages.primaryLanguageOverride = "fr";
WinJS.Resources.processAll();
};