mirror of
https://github.com/modernw/App-Installer-For-Windows-8.x-Reset.git
synced 2026-04-17 13:23:05 +10:00
Update about Manager.
This commit is contained in:
Binary file not shown.
BIN
shared/html/fonts/Symbols.eot
Normal file
BIN
shared/html/fonts/Symbols.eot
Normal file
Binary file not shown.
BIN
shared/html/fonts/Symbols.ttf
Normal file
BIN
shared/html/fonts/Symbols.ttf
Normal file
Binary file not shown.
@@ -31,4 +31,12 @@
|
||||
url('SETUP.TTF') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Symbols";
|
||||
src: url('Symbols.eot') format('embedded-opentype'),
|
||||
url('Symbols.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
@@ -12,6 +12,9 @@
|
||||
global.publicRes = function(resId) {
|
||||
return getFileResPair(respath, resId);
|
||||
}
|
||||
global.stringRes = function(resId) {
|
||||
return Bridge.External.StringResources.getString(resId);
|
||||
}
|
||||
|
||||
function ready(e) {
|
||||
function nextstep() {
|
||||
|
||||
@@ -124,5 +124,100 @@
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function initLoaderPage() {
|
||||
var page = document.getElementById("page-load");
|
||||
var prefixs = ["ins", "reg", "sta"];
|
||||
var opdict = {
|
||||
ins: Package.manager.add,
|
||||
reg: Package.manager.register,
|
||||
sta: Package.manager.stage
|
||||
};
|
||||
var ingdict = {
|
||||
ins: strres.get("MANAGER_LOAD_INSTALL_ING"),
|
||||
reg: strres.get("MANAGER_LOAD_REGISTER_ING"),
|
||||
sta: strres.get("MANAGER_LOAD_STAGE_ING")
|
||||
};
|
||||
var sdict = {
|
||||
ins: strres.get("MANAGER_LOAD_INSTALL_SUCCEED"),
|
||||
reg: strres.get("MANAGER_LOAD_REGISTER_SUCCEED"),
|
||||
sta: strres.get("MANAGER_LOAD_STAGE_SUCCEED")
|
||||
}
|
||||
var explorer = external.Storage.Explorer;
|
||||
prefixs.forEach(function(prefix) {
|
||||
var checklist = document.getElementById(prefix + "-deployoptions");
|
||||
var btn = document.getElementById(prefix + "-btn");
|
||||
var statusbar = document.getElementById(prefix + "-progress");
|
||||
var progressbar = statusbar.querySelector(".progress");
|
||||
var status = statusbar.querySelector(".status");
|
||||
progressbar.removeAttribute("value");
|
||||
status.textContent = "";
|
||||
var hideTimer = null;
|
||||
btn.onclick = function() {
|
||||
var self = this;
|
||||
self.disabled = true;
|
||||
var nextNextStep = function(statusbar) {
|
||||
if (hideTimer) clearTimeout(hideTimer);
|
||||
hideTimer = setTimeout(function() {
|
||||
hideTimer = null;
|
||||
statusbar.bar.hide();
|
||||
}, 10000);
|
||||
}
|
||||
var nextStep = function(filename) {
|
||||
if (filename === "" || filename === null || filename === void 0) {
|
||||
self.disabled = false;
|
||||
return;
|
||||
}
|
||||
if (hideTimer) clearTimeout(hideTimer);
|
||||
var op = opdict[prefix];
|
||||
var options = 0;
|
||||
var items = checklist.querySelectorAll("input:checked");
|
||||
if (items) {
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
options |= parseInt(items[i].value);
|
||||
}
|
||||
}
|
||||
progressbar.removeAttribute("value");
|
||||
status.textContent = external.String.format(ingdict[prefix], "");
|
||||
statusbar.bar.show();
|
||||
op(filename, options).then(function(result) {
|
||||
self.disabled = false;
|
||||
status.textContent = sdict[prefix];
|
||||
refreshAppList2();
|
||||
nextNextStep(statusbar);
|
||||
}, function(error) {
|
||||
self.disabled = false;
|
||||
status.textContent = error.message;
|
||||
nextNextStep(statusbar);
|
||||
}, function(_p) {
|
||||
status.textContent = external.String.format(ingdict[prefix], _p + "%");
|
||||
progressbar.value = _p;
|
||||
});
|
||||
}
|
||||
|
||||
if (prefix === "ins" || prefix === "sta") explorer.file(
|
||||
external.String.format("{0}|{1}|{2}|{3}",
|
||||
strres.get("MANAGER_LOAD_INS_OR_STA_FILTERDISPLAY"),
|
||||
"*.appx;*.appxbundle;*.msix;*.msixbundle",
|
||||
strres.get("MANAGER_LOAD_ALLFILES"),
|
||||
"*.*"
|
||||
),
|
||||
"",
|
||||
nextStep
|
||||
);
|
||||
else if (prefix === "reg") explorer.file(
|
||||
external.String.format("{0}|{1}|{2}|{3}",
|
||||
strres.get("MANAGER_LOAD_REG_FILTERDISPLAY"),
|
||||
"*.appxmanifest;AppxManifest.xml",
|
||||
strres.get("MANAGER_LOAD_ALLFILES"),
|
||||
"*.*"
|
||||
),
|
||||
"",
|
||||
nextStep
|
||||
);
|
||||
};
|
||||
});
|
||||
}
|
||||
global.setAppInfoPageContent = setAppInfoPageContent;
|
||||
global.initLoaderPage = initLoaderPage;
|
||||
})(this);
|
||||
@@ -1,5 +1,7 @@
|
||||
(function(global) {
|
||||
var strres = external.StringResources;
|
||||
var conf = external.Config.current;
|
||||
var set = conf.getSection("Settings");
|
||||
|
||||
function createLocalizedCompare(locale) {
|
||||
return function(a, b) {
|
||||
@@ -359,6 +361,8 @@
|
||||
}
|
||||
var showSystemApps = document.getElementById("applist-showsystemapp");
|
||||
var showFrameworks = document.getElementById("applist-showframework");
|
||||
showSystemApps.checked = set.getKey("PackageManager:ShowSystemApps").readBool(false);
|
||||
showFrameworks.checked = set.getKey("PackageManager:ShowFrameworks").readBool(false);
|
||||
listView.filter = function(item) {
|
||||
try {
|
||||
if (!showFrameworks.checked && item.Properties.Framework) return false;
|
||||
@@ -371,10 +375,12 @@
|
||||
Windows.UI.Event.Util.addEvent(showSystemApps, "change", function() {
|
||||
listView.refresh();
|
||||
dataLengthDisplay.textContent = external.String.format(strres.get("MANAGER_MANAGE_FINDAPPS"), listView.findItemLength);
|
||||
set.getKey("PackageManager:ShowSystemApps").set(showSystemApps.checked);
|
||||
});
|
||||
Windows.UI.Event.Util.addEvent(showFrameworks, "change", function() {
|
||||
listView.refresh();
|
||||
dataLengthDisplay.textContent = external.String.format(strres.get("MANAGER_MANAGE_FINDAPPS"), listView.findItemLength);
|
||||
set.getKey("PackageManager:ShowFrameworks").set(showFrameworks.checked);
|
||||
});
|
||||
refreshButton.addEventListener("click", refreshAppList2);
|
||||
appbarControl.add(refreshButton);
|
||||
@@ -408,12 +414,60 @@
|
||||
launchButton.textContent = strres.get("MANAGER_APP_LAUNCH");
|
||||
launchButton.setAttribute("data-app-user-model-id", item.AppUserModelID);
|
||||
var createShortcutButton = document.createElement("button");
|
||||
createShortcutButton.textContent = strres.get("MANAGER_APP_CREATESHORTCUT");
|
||||
createShortcutButton.setAttribute("data-app-user-model-id", item.AppUserModelID);
|
||||
createShortcutButton.textContent = strres.get("MANAGER_APP_SHORTCUTCREATE_TITLE");
|
||||
createShortcutButton.style.marginRight = "10px";
|
||||
Windows.UI.Event.Util.addEvent(launchButton, "click", function(e) {
|
||||
e.stopPropagation();
|
||||
Package.manager.active(this.getAttribute("data-app-user-model-id"));
|
||||
});
|
||||
Windows.UI.Event.Util.addEvent(createShortcutButton, "click", function(e) {
|
||||
e.stopPropagation();
|
||||
var backid =
|
||||
messageBoxAdvance(function() {
|
||||
var ring = document.createElement("progress");
|
||||
ring.classList.add("win-ring");
|
||||
ring.style.color = "white";
|
||||
var text = document.createElement("span");
|
||||
text.textContent = strres.get("MANAGER_APP_SHORTCUTCREATE_BACK_TEXT_ING");
|
||||
text.style.marginLeft = "20px";
|
||||
var container = document.createElement("div");
|
||||
container.style.display = "flex";
|
||||
container.style.flexDirection = "row";
|
||||
container.appendChild(ring);
|
||||
container.appendChild(text);
|
||||
container.style.marginTop = "10px";
|
||||
var openInstallLocation = document.createElement("button");
|
||||
openInstallLocation.textContent = strres.get("MANAGER_APP_SHORTCUTCREATE_OPENINSTALLLOCATION");
|
||||
openInstallLocation.style.marginTop = "10px";
|
||||
openInstallLocation.style.display = "block";
|
||||
openInstallLocation.setAttribute("data-install-location", appDetailPage.data.InstallLocation);
|
||||
openInstallLocation.onclick = function() {
|
||||
external.Storage.Path.open(this.getAttribute("data-install-location"));
|
||||
};
|
||||
var finalc = document.createElement("div");
|
||||
finalc.appendChild(container);
|
||||
finalc.appendChild(document.createElement("br"));
|
||||
finalc.appendChild(openInstallLocation);
|
||||
return finalc;
|
||||
}(), strres.get("MANAGER_APP_SHORTCUTCREATE_BACK_TITLE"), [], "#159d9d");
|
||||
document.getElementById(backid).querySelector(".notice-controls").style.display = "none";
|
||||
var back = document.getElementById(backid);
|
||||
external.createAppShortcut(appDetailPage.data.InstallLocation, this.getAttribute("data-app-user-model-id"), function(complete) {
|
||||
complete = JSON.parse(complete);
|
||||
if (typeof back.remove !== "undefined") back.remove();
|
||||
else if (typeof back.removeNode !== "undefined") back.removeNode(true);
|
||||
else back.parentNode.removeChild(back);
|
||||
if (complete.succeeded) messageBoxAdvance(strres.get("MANAGER_APP_SHORTCUTCREATE_BACK_TEXT_SUCCEED"), strres.get("MANAGER_APP_SHORTCUTCREATE_BACK_TITLE_SUCCEED"), [], "#159d9d");
|
||||
else messageBoxAdvance(complete.message, strres.get("MANAGER_APP_SHORTCUTCREATE_BACK_TITLE_FAILED"), [], "#159d9d");
|
||||
}, function(error) {
|
||||
error = JSON.parse(error);
|
||||
if (typeof back.remove !== "undefined") back.remove();
|
||||
else if (typeof back.removeNode !== "undefined") back.removeNode(true);
|
||||
else back.parentNode.removeChild(back);
|
||||
messageBoxAdvance((error.message || error.error || error), strres.get("MANAGER_APP_SHORTCUTCREATE_BACK_TITLE_FAILED"), [], "#159d9d");
|
||||
});
|
||||
});
|
||||
ctrls.appendChild(launchButton);
|
||||
ctrls.appendChild(createShortcutButton);
|
||||
return appItem;
|
||||
@@ -536,10 +590,12 @@
|
||||
});
|
||||
uninstallFlyout.appDataSource = new DataView.DataSource();
|
||||
uninstallFlyout.appListView.bind(uninstallFlyout.appDataSource);
|
||||
initLoaderPage();
|
||||
pagemgr.addEventListener("load", function(e) {
|
||||
appbarControl.enabled = e == "manager";
|
||||
refreshButton.style.display = e == "manager" ? "" : "none";
|
||||
});
|
||||
pagemgr.register("load", document.getElementById("tag-load"), document.getElementById("page-load"));
|
||||
pagemgr.go("manager");
|
||||
});
|
||||
})(this);
|
||||
@@ -187,4 +187,32 @@
|
||||
}
|
||||
};
|
||||
}
|
||||
})();
|
||||
})();
|
||||
(function(global) {
|
||||
"use strict";
|
||||
if (typeof Array.prototype.forEach === "undefined") {
|
||||
Array.prototype.forEach = function(callback, thisArg) {
|
||||
var T, k;
|
||||
if (this == null) {
|
||||
throw new TypeError(" this is null or not defined");
|
||||
}
|
||||
var O = Object(this);
|
||||
var len = O.length >>> 0;
|
||||
if (typeof callback !== "function") {
|
||||
throw new TypeError(callback + " is not a function");
|
||||
}
|
||||
if (arguments.length > 1) {
|
||||
T = thisArg;
|
||||
}
|
||||
k = 0;
|
||||
while (k < len) {
|
||||
var kValue;
|
||||
if (k in O) {
|
||||
kValue = O[k];
|
||||
callback.call(T, kValue, k, O);
|
||||
}
|
||||
k++;
|
||||
}
|
||||
};
|
||||
}
|
||||
})(this);
|
||||
@@ -14,10 +14,12 @@
|
||||
var byId = el.getAttribute('data-res-byid');
|
||||
var fromFile = el.getAttribute('data-res-fromfile');
|
||||
var byXml = el.getAttribute('data-res-resxml');
|
||||
var customSet = el.getAttribute('data-res-custom');
|
||||
if ((byName && !Bridge.NString.empty(byName)) ||
|
||||
(byId && parseInt(byId, 10) > 0) ||
|
||||
(fromFile && !Bridge.NString.empty(fromFile)) ||
|
||||
(byXml && !Bridge.NString.empty(byXml))) {
|
||||
(byXml && !Bridge.NString.empty(byXml)) ||
|
||||
(customSet && !Bridge.NString.empty(customSet))) {
|
||||
result.push(el);
|
||||
}
|
||||
}
|
||||
@@ -55,12 +57,23 @@
|
||||
try {
|
||||
var obj = nodes[i].getAttribute('data-res-resxml');
|
||||
var strres = external.StringResources;
|
||||
if (strres && strres.isValid) {
|
||||
nodes[i].textContent = strres.get(obj);
|
||||
if (strres) {
|
||||
try {
|
||||
nodes[i].textContent = strres.get(obj);
|
||||
} catch (e) {
|
||||
nodes[i].textContent = strres.getString(obj);
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
nodes[i].textContent = "";
|
||||
}
|
||||
} else if (nodes[i].hasAttribute('data-res-custom')) {
|
||||
try {
|
||||
var obj = eval(nodes[i].getAttribute('data-res-custom'));
|
||||
nodes[i].textContent = obj;
|
||||
} catch (e) {
|
||||
nodes[i].textContent = "";
|
||||
}
|
||||
} else {
|
||||
nodes[i].textContent = "";
|
||||
}
|
||||
|
||||
@@ -144,6 +144,123 @@
|
||||
<button id="detail-uninstall-btn" data-res-resxml="MANAGER_APP_UNINSTALL">卸载</button>
|
||||
<div class="bottom-compensate"></div>
|
||||
</div>
|
||||
<div id="page-load" class="ispage" style="display: none;">
|
||||
<style>
|
||||
.checklist {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-wrap: wrap;
|
||||
align-content: flex-start;
|
||||
justify-content: flex-start;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.checklist .title {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.checklist .item {
|
||||
margin-left: 10px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: nowrap;
|
||||
align-content: flex-start;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
}
|
||||
</style>
|
||||
<h2 data-res-resxml="MANAGER_LOAD"></h2>
|
||||
<p data-res-resxml="MANAGER_LOAD_DESC"></p>
|
||||
<h3 data-res-resxml="MANAGER_LOAD_INSTALL"></h3>
|
||||
<p data-res-resxml="MANAGER_LOAD_INSTALL_DESC"></p>
|
||||
<div class="checklist" id="ins-deployoptions">
|
||||
<span class="title" data-res-resxml="MANAGER_LOAD_DEPLOY_OPTIONS"></span>
|
||||
<div class="item">
|
||||
<input type="checkbox" value="2" id="ins-devmode">
|
||||
<label for="ins-devmode" data-res-resxml="MANAGER_LOAD_DEPLOY_OPTIONS_DEVELOPMENT_MODE"></label>
|
||||
</div>
|
||||
<div class="item">
|
||||
<input type="checkbox" value="1" id="ins-force-appshutdown">
|
||||
<label for="ins-force-appshutdown" data-res-resxml="MANAGER_LOAD_DEPLOY_OPTIONS_FORCE_APP_SHUTDOWN"></label>
|
||||
</div>
|
||||
<div class="item">
|
||||
<input type="checkbox" value="32" id="ins-all-resources">
|
||||
<label for="ins-all-resources" data-res-resxml="MANAGER_LOAD_DEPLOY_OPTIONS_INSTALL_ALL_RESOURCES"></label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="statusbar" id="ins-progress">
|
||||
<div class="container" style="padding-bottom: 10px;">
|
||||
<span class="status"></span><br>
|
||||
<progress class="win-progress progress" min="0" max="100"></progress>
|
||||
</div>
|
||||
</div>
|
||||
<button id="ins-btn" data-res-resxml="MANAGER_LOAD_INSTALL_BTN"></button>
|
||||
<br><br>
|
||||
<h3 data-res-resxml="MANAGER_LOAD_REGISTER"></h3>
|
||||
<p data-res-resxml="MANAGER_LOAD_REGISTER_DESC"></p>
|
||||
<div class="checklist" id="reg-deployoptions">
|
||||
<span class="title" data-res-resxml="MANAGER_LOAD_DEPLOY_OPTIONS"></span>
|
||||
<div class="item">
|
||||
<input type="checkbox" value="2" id="reg-devmode">
|
||||
<label for="reg-devmode" data-res-resxml="MANAGER_LOAD_DEPLOY_OPTIONS_DEVELOPMENT_MODE"></label>
|
||||
</div>
|
||||
<div class="item">
|
||||
<input type="checkbox" value="1" id="reg-force-appshutdown">
|
||||
<label for="reg-force-appshutdown" data-res-resxml="MANAGER_LOAD_DEPLOY_OPTIONS_FORCE_APP_SHUTDOWN"></label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="statusbar" id="reg-progress">
|
||||
<div class="container">
|
||||
<span class="status" data-res-resxml="MANAGER_APP_REG_ING"></span><br>
|
||||
<progress class="win-progress progress" min="0" max="100"></progress>
|
||||
</div>
|
||||
</div>
|
||||
<button id="reg-btn" data-res-resxml="MANAGER_LOAD_REGISTER_BTN"></button>
|
||||
<br><br>
|
||||
<h3 data-res-resxml="MANAGER_LOAD_STAGE"></h3>
|
||||
<p data-res-resxml="MANAGER_LOAD_STAGE_DESC"></p>
|
||||
<div class="checklist" id="sta-deployoptions">
|
||||
<span class="title" data-res-resxml="MANAGER_LOAD_DEPLOY_OPTIONS"></span>
|
||||
<div class="item">
|
||||
<input type="checkbox" value="2" id="sta-devmode">
|
||||
<label for="sta-devmode" data-res-resxml="MANAGER_LOAD_DEPLOY_OPTIONS_DEVELOPMENT_MODE"></label>
|
||||
</div>
|
||||
<div class="item">
|
||||
<input type="checkbox" value="1" id="sta-force-appshutdown">
|
||||
<label for="sta-force-appshutdown" data-res-resxml="MANAGER_LOAD_DEPLOY_OPTIONS_FORCE_APP_SHUTDOWN"></label>
|
||||
</div>
|
||||
<div class="item">
|
||||
<input type="checkbox" value="32" id="sta-all-resources">
|
||||
<label for="sta-all-resources" data-res-resxml="MANAGER_LOAD_DEPLOY_OPTIONS_INSTALL_ALL_RESOURCES"></label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="statusbar" id="sta-progress">
|
||||
<div class="container">
|
||||
<span class="status" data-res-resxml="MANAGER_APP_REG_ING"></span><br>
|
||||
<progress class="win-progress progress" min="0" max="100"></progress>
|
||||
</div>
|
||||
</div>
|
||||
<button id="sta-btn" data-res-resxml="MANAGER_LOAD_STAGE_BTN"></button>
|
||||
<div class="bottom-compensate"></div>
|
||||
<script>
|
||||
(function(global) {
|
||||
var prefixs = ["ins", "reg", "sta"];
|
||||
var statusbars = [
|
||||
document.getElementById("ins-progress"),
|
||||
document.getElementById("reg-progress"),
|
||||
document.getElementById("sta-progress")
|
||||
];
|
||||
statusbars.forEach(function(statusbar) {
|
||||
statusbar.bar = new TransitionPanel(statusbar, {
|
||||
axis: 'y',
|
||||
duration: 500,
|
||||
});
|
||||
});
|
||||
})(this);
|
||||
</script>
|
||||
</div>
|
||||
</main>
|
||||
<aside class="win-ui-dark">
|
||||
<nav class="container">
|
||||
@@ -171,12 +288,44 @@
|
||||
</li>
|
||||
<li id="tag-appinfo" class="subitem">
|
||||
<div role="img"></div>
|
||||
<span class="win-type-base">应用信息</span>
|
||||
<span class="win-type-base" data-res-resxml="MANAGER_APP"></span>
|
||||
</li>
|
||||
<li>
|
||||
<div role="img"></div>
|
||||
<span class="win-type-base">Manager</span>
|
||||
<li id="tag-load">
|
||||
<div role="img"></div>
|
||||
<span class="win-type-base" data-res-resxml="MANAGER_LOAD"></span>
|
||||
</li>
|
||||
<li id="tag-settings">
|
||||
<div role="img"></div>
|
||||
<span class="win-type-base" data-res-resxml="MANAGER_SETTINGS"></span>
|
||||
</li>
|
||||
<script>
|
||||
(function(global) {
|
||||
var isexec = false;
|
||||
var settag = document.getElementById("tag-settings");
|
||||
Windows.UI.Event.Util.addEvent(settag, "click", function() {
|
||||
if (isexec) return;
|
||||
var self = this;
|
||||
try {
|
||||
var settingpath = external.Storage.Path.combine(external.Storage.Path.root, "settings.exe");
|
||||
//var cmdline = "\"{execfile}\" manager".replace("{execfile}", settingpath);
|
||||
external.Process.runAsync(
|
||||
"manager",
|
||||
settingpath,
|
||||
1,
|
||||
"",
|
||||
function(ret) {
|
||||
isexec = false;
|
||||
self.classList.remove("selected");
|
||||
}
|
||||
);
|
||||
isexec = true;
|
||||
self.classList.add("selected");
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
});
|
||||
})(this);
|
||||
</script>
|
||||
</ul>
|
||||
</nav>
|
||||
</aside>
|
||||
@@ -209,14 +358,6 @@
|
||||
<button class="confirm" data-res-resxml="MANAGER_APP_UNINSTALL" style="float: right;"></button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="app-deskshortcut-create" style="position: absolute;">
|
||||
<p>即将在桌面创建快捷方式,这里做一些调整。快捷方式不建议固定到开始菜单中,因为本快捷方式只是一种启动器。不具有其余磁贴功能。</p>
|
||||
<div>
|
||||
<div>
|
||||
<div class="win-radio"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -10,6 +10,10 @@
|
||||
return res.fromfile(libpath, resid);
|
||||
}
|
||||
|
||||
function getStringRes(resid) {
|
||||
return Bridge.External.StringResources.getString(resid);
|
||||
}
|
||||
|
||||
function getSettingsItem(page, displayName) {
|
||||
return {
|
||||
page: page,
|
||||
@@ -18,7 +22,8 @@
|
||||
}
|
||||
var settingItems = {
|
||||
appinstaller: getSettingsItem("appinstaller.html", getLibRes("appinstaller.exe", 300)),
|
||||
settings: getSettingsItem("settings.html", getLibRes("settings.exe", 200))
|
||||
manager: getSettingsItem("manager.html", getStringRes("MANAGER_APPTITLE")),
|
||||
settings: getSettingsItem("settings.html", getLibRes("settings.exe", 200)),
|
||||
};
|
||||
Object.defineProperty(global, "settingPages", {
|
||||
get: function() { return settingItems; }
|
||||
|
||||
54
shared/html/settings/manager.html
Normal file
54
shared/html/settings/manager.html
Normal file
@@ -0,0 +1,54 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Package Manager Settings</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<script type="text/javascript" src="../js/module.js"></script>
|
||||
<script type="text/javascript" src="../js/polyfill-ie.js"></script>
|
||||
<link rel="stylesheet" href="../libs/winjs/2.0/css/ui-light.css" id="winjs-style">
|
||||
<script type="text/javascript" src="../libs/winjs/1.0/js/base.js"></script>
|
||||
<script type="text/javascript" src="../libs/winjs/1.0/js/ui.js"></script>
|
||||
<script type="text/javascript" src="../js/color.js"></script>
|
||||
<script type="text/javascript" src="../js/promise.js"></script>
|
||||
<script type="text/javascript" src="../js/bridge.js"></script>
|
||||
<script type="text/javascript" src="../js/dpimodes.js"></script>
|
||||
<script type="text/javascript" src="../js/resources.js"></script>
|
||||
<script type="text/javascript" src="../js/animation.js"></script>
|
||||
<link rel="stylesheet" href="../fonts/fonts.css">
|
||||
<script type="text/javascript" src="../js/event.js"></script>
|
||||
<script type="text/javascript" src="../js/tileback.js"></script>
|
||||
<script type="text/javascript" src="../js/load.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../libs/msgbox/msgbox.css">
|
||||
<script type="text/javascript" src="../libs/msgbox/msgbox.js"></script>
|
||||
<script type="text/javascript" src="../js/init.js"></script>
|
||||
<script type="text/javascript" src="initsame.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="page.css">
|
||||
<script type="text/javascript" src="manager/preinit.js"></script>
|
||||
<script type="text/javascript" src="manager/items.js"></script>
|
||||
<script type="text/javascript" src="manager/init.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="settingpage" class="pagecontainer full">
|
||||
<div class="page full guide">
|
||||
<aside class="left win-ui-dark">
|
||||
<header aria-label="Header content" role="banner" class="titlebanner" id="pagebanner" style="height: 120px;">
|
||||
<button id="back" class="win-backbutton pagetitlewb-backbutton" onclick="Bridge.Frame.callEvent ('InvokeBackPage')" style="margin-left: 20px; transform: scale(0.72);"></button>
|
||||
<h2 class="titlearea win-type-ellipsis" id="apptitle" style="">
|
||||
<span class="pagetitlewb-title" id="apptitlestr" style="margin-left: 10px; margin-right: 20px;" data-res-resxml="MANAGER_APPTITLE"></span>
|
||||
</h2>
|
||||
</header>
|
||||
<nav class="container">
|
||||
<ul class="list">
|
||||
</ul>
|
||||
</nav>
|
||||
</aside>
|
||||
<iframe class="main right" defer loading="lazy" async></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
146
shared/html/settings/manager/general.html
Normal file
146
shared/html/settings/manager/general.html
Normal file
@@ -0,0 +1,146 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>App Installer Settings</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<script type="text/javascript" src="../../js/module.js"></script>
|
||||
<script type="text/javascript" src="../../js/polyfill-ie.js"></script>
|
||||
<link rel="stylesheet" href="../../libs/winjs/2.0/css/ui-light.css" id="winjs-style">
|
||||
<script type="text/javascript" src="../../libs/winjs/1.0/js/base.js"></script>
|
||||
<script type="text/javascript" src="../../libs/winjs/1.0/js/ui.js"></script>
|
||||
<script type="text/javascript" src="../../js/color.js"></script>
|
||||
<script type="text/javascript" src="../../js/promise.js"></script>
|
||||
<script type="text/javascript" src="../../js/bridge.js"></script>
|
||||
<script type="text/javascript" src="../../js/dpimodes.js"></script>
|
||||
<script type="text/javascript" src="../../js/resources.js"></script>
|
||||
<script type="text/javascript" src="../../js/animation.js"></script>
|
||||
<link rel="stylesheet" href="../../fonts/fonts.css">
|
||||
<script type="text/javascript" src="../../js/event.js"></script>
|
||||
<script type="text/javascript" src="../../js/tileback.js"></script>
|
||||
<script type="text/javascript" src="../../js/load.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../libs/msgbox/msgbox.css">
|
||||
<script type="text/javascript" src="../../libs/msgbox/msgbox.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../libs/toggle/toggle.css">
|
||||
<script type="text/javascript" src="../../libs/toggle/toggle.js"></script>
|
||||
<script type="text/javascript" src="../../js/init.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../page.css">
|
||||
<link rel="stylesheet" type="text/css" href="../subpage.css">
|
||||
<script type="text/javascript" src="preinit.js"></script>
|
||||
<script type="text/javascript" src="initsame.js"></script>
|
||||
<script>
|
||||
try {
|
||||
window.parent.setItemHighlight("general");
|
||||
} catch (e) {}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="pagecontainer full pagesection">
|
||||
<div class="section padding">
|
||||
<div class="bottom-compensate">
|
||||
<h2 id="page-title" data-res-fromfile="publicRes (101)"></h2>
|
||||
<div class="win-settings-section">
|
||||
<br>
|
||||
<label class="win-label" for="save-wnd-size" id="save-wnd-size-label" data-res-fromfile="publicRes (125)"></label>
|
||||
<script>
|
||||
(function() {
|
||||
"use strict";
|
||||
var label = document.getElementById("save-wnd-size-label");
|
||||
var toggle = new Toggle();
|
||||
toggle.create();
|
||||
toggle.parent = label.parentNode;
|
||||
toggle.showlabel = true;
|
||||
var winjsres = Bridge.External.WinJsStringRes;
|
||||
toggle.setStatusText(winjsres.getString("ms-resource://Microsoft.WinJS.1.0/ui/on"), winjsres.getString("ms-resource://Microsoft.WinJS.1.0/ui/off"));
|
||||
toggle.inputId = "save-wnd-size";
|
||||
var ini = Bridge.External.Config.GetConfig();
|
||||
toggle.addEventListener("change", function() {
|
||||
ini.set("Settings", "PackageManager:SavePosAndSizeBeforeCancel", toggle.checked);
|
||||
});
|
||||
toggle.checked = parseBool(ini.getSection("Settings").getKey("PackageManager:SavePosAndSizeBeforeCancel").value);
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
<div class="win-settings-section">
|
||||
<br>
|
||||
<label class="win-label" for="default-wndwidth" data-res-fromfile="publicRes(126)"></label><br>
|
||||
<input type="number" id="default-wndwidth" inputmode="numeric"><br><br>
|
||||
<label class="win-label" for="default-wndheight" data-res-fromfile="publicRes(127)"></label><br>
|
||||
<input type="number" id="default-wndheight" inputmode="numeric">
|
||||
<script>
|
||||
(function() {
|
||||
"use strict";
|
||||
var ini = Bridge.External.Config.GetConfig();
|
||||
var defWndWInput = document.getElementById("default-wndwidth");
|
||||
var defWndHInput = document.getElementById("default-wndheight");
|
||||
var setsect = ini.getSection("Settings");
|
||||
var defwk = setsect.getKey("PackageManager:DefaultWidth");
|
||||
var defhk = setsect.getKey("PackageManager:DefaultHeight");
|
||||
defWndWInput.value = defwk.value;
|
||||
defWndHInput.value = defhk.value;
|
||||
var eventutil = Windows.UI.Event.Util;
|
||||
|
||||
function inputDefaultWidthChangeEvent(e) {
|
||||
defwk.value = parseInt(defWndWInput.value);
|
||||
}
|
||||
|
||||
function inputDefaultHeightChangeEvent(e) {
|
||||
defhk.value = parseInt(defWndHInput.value);
|
||||
}
|
||||
var debounced_idwc = debounce(inputDefaultWidthChangeEvent, 500);
|
||||
var debounced_idhc = debounce(inputDefaultHeightChangeEvent, 500);
|
||||
eventutil.addEvent(defWndWInput, "input", debounced_idwc);
|
||||
eventutil.addEvent(defWndWInput, "propertychange", debounced_idwc);
|
||||
eventutil.addEvent(defWndWInput, "change", debounced_idwc);
|
||||
eventutil.addEvent(defWndHInput, "input", debounced_idhc);
|
||||
eventutil.addEvent(defWndHInput, "propertychange", debounced_idhc);
|
||||
eventutil.addEvent(defWndHInput, "change", debounced_idhc);
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
<div class="win-settings-section">
|
||||
<br>
|
||||
<label class="win-label" for="min-wndwidth" data-res-fromfile="publicRes (128)"></label><br>
|
||||
<input type="number" id="min-wndwidth" inputmode="numeric"><br><br>
|
||||
<label class="win-label" for="min-wndheight" data-res-fromfile="publicRes (129)"></label><br>
|
||||
<input type="number" id="min-wndheight" inputmode="numeric">
|
||||
<script>
|
||||
(function() {
|
||||
"use strict";
|
||||
var ini = Bridge.External.Config.GetConfig();
|
||||
var minWndWInput = document.getElementById("min-wndwidth");
|
||||
var minWndHInput = document.getElementById("min-wndheight");
|
||||
var setsect = ini.getSection("Settings");
|
||||
var minwk = setsect.getKey("PackageManager:MinimumWidth");
|
||||
var minhk = setsect.getKey("PackageManager:MinimumHeight");
|
||||
minWndWInput.value = minwk.value;
|
||||
minWndHInput.value = minhk.value;
|
||||
var eventutil = Windows.UI.Event.Util;
|
||||
|
||||
function inputDefaultWidthChangeEvent(e) {
|
||||
minwk.value = parseInt(minWndWInput.value);
|
||||
}
|
||||
|
||||
function inputDefaultHeightChangeEvent(e) {
|
||||
minhk.value = parseInt(minWndHInput.value);
|
||||
}
|
||||
var debounced_idwc = debounce(inputDefaultWidthChangeEvent, 500);
|
||||
var debounced_idhc = debounce(inputDefaultHeightChangeEvent, 500);
|
||||
eventutil.addEvent(minWndWInput, "input", debounced_idwc);
|
||||
eventutil.addEvent(minWndWInput, "propertychange", debounced_idwc);
|
||||
eventutil.addEvent(minWndWInput, "change", debounced_idwc);
|
||||
eventutil.addEvent(minWndHInput, "input", debounced_idhc);
|
||||
eventutil.addEvent(minWndHInput, "propertychange", debounced_idhc);
|
||||
eventutil.addEvent(minWndHInput, "change", debounced_idhc);
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
60
shared/html/settings/manager/guide.html
Normal file
60
shared/html/settings/manager/guide.html
Normal file
@@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>App Installer Settings</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<script type="text/javascript" src="../../js/module.js"></script>
|
||||
<script type="text/javascript" src="../../js/polyfill-ie.js"></script>
|
||||
<link rel="stylesheet" href="../../libs/winjs/2.0/css/ui-light.css" id="winjs-style">
|
||||
<script type="text/javascript" src="../../libs/winjs/1.0/js/base.js"></script>
|
||||
<script type="text/javascript" src="../../libs/winjs/1.0/js/ui.js"></script>
|
||||
<script type="text/javascript" src="../../js/color.js"></script>
|
||||
<script type="text/javascript" src="../../js/promise.js"></script>
|
||||
<script type="text/javascript" src="../../js/bridge.js"></script>
|
||||
<script type="text/javascript" src="../../js/dpimodes.js"></script>
|
||||
<script type="text/javascript" src="../../js/resources.js"></script>
|
||||
<script type="text/javascript" src="../../js/animation.js"></script>
|
||||
<link rel="stylesheet" href="../../fonts/fonts.css">
|
||||
<script type="text/javascript" src="../../js/event.js"></script>
|
||||
<script type="text/javascript" src="../../js/tileback.js"></script>
|
||||
<script type="text/javascript" src="../../js/load.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../libs/msgbox/msgbox.css">
|
||||
<script type="text/javascript" src="../../libs/msgbox/msgbox.js"></script>
|
||||
<script type="text/javascript" src="../../js/init.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../page.css">
|
||||
<link rel="stylesheet" type="text/css" href="../subpage.css">
|
||||
<script type="text/javascript" src="preinit.js"></script>
|
||||
<script type="text/javascript" src="initsame.js"></script>
|
||||
<script>
|
||||
try {
|
||||
window.parent.setItemHighlight("guide");
|
||||
} catch (e) {}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="pagecontainer full pagesection">
|
||||
<div class="section padding">
|
||||
<div class="bottom-compensate">
|
||||
<h2 id="guide-title"></h2>
|
||||
<p id="guide-desc" style="white-space: pre-wrap;"></p>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
(function() {
|
||||
"use strict";
|
||||
var res = Bridge.Resources;
|
||||
var stru = Bridge.String;
|
||||
var title = document.getElementById("guide-title");
|
||||
title.textContent = stru.format(res.byname("IDS_TITLEFORMAT"), stringRes("MANAGER_APPTITLE"));
|
||||
var text = document.getElementById("guide-desc");
|
||||
text.textContent = res.byname("IDS_GUIDETEXT_COMMON");
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
96
shared/html/settings/manager/init.js
Normal file
96
shared/html/settings/manager/init.js
Normal file
@@ -0,0 +1,96 @@
|
||||
(function(global) {
|
||||
"use strict";
|
||||
|
||||
function ready(e) {
|
||||
var page = document.querySelector("#settingpage");
|
||||
var guide = page.querySelector(".page.guide");
|
||||
var slide = guide.querySelector("aside");
|
||||
setTimeout(function() {
|
||||
var barcolor = visual["BackgroundColor"];
|
||||
slide.style.backgroundColor = barcolor;
|
||||
slide.style.color = Color.getSuitableForegroundTextColor(Color.parse(barcolor), [Color.Const.white, Color.Const.black]).stringify();
|
||||
}, 50);
|
||||
var content = guide.querySelector(".main");
|
||||
var list = slide.querySelector("ul");
|
||||
var backbtn = slide.querySelector("#back");
|
||||
var title = slide.querySelector("#apptitle");
|
||||
list.innerHTML = "";
|
||||
var items = pages;
|
||||
var tags = Object.keys(items);
|
||||
var eventutil = Windows.UI.Event.Util;
|
||||
for (var i = 0; i < tags.length; i++) {
|
||||
var tag = tags[i];
|
||||
var item = items[tag];
|
||||
var li = document.createElement("li");
|
||||
li.setAttribute("data-page", item.page);
|
||||
li.setAttribute("data-tag", item.tag);
|
||||
li.innerHTML = item.title;
|
||||
eventutil.addEvent(li, "click", function() {
|
||||
if (li.hasAttribute("data-require-disabled")) return;
|
||||
content.style.display = "none";
|
||||
for (var j = 0; j < list.children.length; j++) {
|
||||
var child = list.children[j];
|
||||
if (child.classList.contains("selected"))
|
||||
child.classList.remove("selected");
|
||||
}
|
||||
content.src = this.getAttribute("data-page");
|
||||
setTimeout(function() {
|
||||
content.style.display = "";
|
||||
Windows.UI.Animation.runAsync(content, [Windows.UI.Animation.Keyframes.Flyout.toLeft, Windows.UI.Animation.Keyframes.Opacity.visible]);
|
||||
}, 0);
|
||||
this.classList.add("selected");
|
||||
});
|
||||
list.appendChild(li);
|
||||
}
|
||||
content.src = guidePage.page;
|
||||
/*for (var i = 0; i < list.children.length; i++) {
|
||||
var child = list.children[i];
|
||||
child.click();
|
||||
break;
|
||||
}*/
|
||||
var jumppage = "";
|
||||
try { var args = cmdargs; if (args.length > 1) jumppage = args[1]; } catch (e) {}
|
||||
if (jumppage && jumppage.length > 0 && !Bridge.External.jump2) {
|
||||
for (var i = 0; i < list.children.length; i++) {
|
||||
var child = list.children[i];
|
||||
if (Bridge.NString.equals(child.getAttribute("data-tag"), jumppage)) {
|
||||
Bridge.External.jump2 = true;
|
||||
setTimeout(function(thisnode) {
|
||||
thisnode.click();
|
||||
}, 0, child)
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
global.setDisabledForOperation = function(disabled) {
|
||||
var list = document.querySelector("#settingpage .guide aside ul");
|
||||
for (var i = 0; i < list.children.length; i++) {
|
||||
var child = list.children[i];
|
||||
if (disabled) {
|
||||
child.setAttribute("data-require-disabled", "true");
|
||||
} else {
|
||||
child.removeAttribute("data-require-disabled");
|
||||
}
|
||||
}
|
||||
if (disabled) {
|
||||
backbtn.disabled = true;
|
||||
title.style.marginLeft = backbtn.style.marginLeft;
|
||||
} else {
|
||||
backbtn.disabled = false;
|
||||
title.style.marginLeft = "";
|
||||
}
|
||||
}
|
||||
global.setItemHighlight = function(tag) {
|
||||
var list = document.querySelector("#settingpage .guide aside ul");
|
||||
for (var i = 0; i < list.children.length; i++) {
|
||||
var child = list.children[i];
|
||||
if (Bridge.NString.equals(child.getAttribute("data-tag"), tag)) {
|
||||
if (!child.classList.contains("selected")) child.classList.add("selected");
|
||||
} else {
|
||||
if (child.classList.contains("selected")) child.classList.remove("selected");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
OnLoad.add(ready);
|
||||
})(this);
|
||||
21
shared/html/settings/manager/initsame.js
Normal file
21
shared/html/settings/manager/initsame.js
Normal file
@@ -0,0 +1,21 @@
|
||||
(function(global) {
|
||||
"use strict";
|
||||
|
||||
function ready(e) {
|
||||
Windows.UI.DPI.mode = 1
|
||||
var pagesection = document.querySelector(".pagesection");
|
||||
if (pagesection) {
|
||||
var backcolor = slideback;
|
||||
setTimeout(function() {
|
||||
var h2style = document.getElementById("h2-style");
|
||||
if (!h2style) {
|
||||
h2style = document.createElement("style");
|
||||
h2style.id = "h2-style";
|
||||
}
|
||||
h2style.innerHTML = ".main h2 { color: " + Color.getSuitableForegroundTextColor(Color.parse("#F3F3F3"), [Color.parse(backcolor), Color.Const.black]).RGBA.stringify() + " }";
|
||||
document.head.appendChild(h2style);
|
||||
}, 0);
|
||||
}
|
||||
}
|
||||
OnLoad.add(ready);
|
||||
})(this);
|
||||
24
shared/html/settings/manager/items.js
Normal file
24
shared/html/settings/manager/items.js
Normal file
@@ -0,0 +1,24 @@
|
||||
(function(global) {
|
||||
"use strict";
|
||||
|
||||
function getPage(tag, page, display) {
|
||||
return {
|
||||
tag: tag,
|
||||
page: page,
|
||||
title: display
|
||||
};
|
||||
}
|
||||
var pages = {
|
||||
general: getPage("general", "manager/general.html", getPublicRes(101)),
|
||||
};
|
||||
Object.defineProperty(global, "pages", {
|
||||
get: function() {
|
||||
return pages;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(global, "guidePage", {
|
||||
get: function() {
|
||||
return getPage("guide", "manager/guide.html", "guide");
|
||||
}
|
||||
});
|
||||
})(this);
|
||||
30
shared/html/settings/manager/preinit.js
Normal file
30
shared/html/settings/manager/preinit.js
Normal file
@@ -0,0 +1,30 @@
|
||||
(function(global) {
|
||||
var storage = Bridge.External.Storage;
|
||||
var path = storage.path;
|
||||
var root = path.getDir(path.program);
|
||||
var exepath = path.combine(root, "settings.exe");
|
||||
var id = "Manager";
|
||||
var ve = Bridge.External.VisualElements.get(id);
|
||||
var slideback = ve["BackgroundColor"];
|
||||
global.slideback = slideback;
|
||||
global.exepath = exepath;
|
||||
global.visual = ve;
|
||||
var strutil = Bridge.External.String;
|
||||
var nstrutil = Bridge.NString;
|
||||
var boolTrue = ["true", "1", "yes", "on", "y", "t", "zhen", "真"];
|
||||
var boolFalse = ["false", "0", "no", "off", "n", "f", "jia", "假"];
|
||||
global.parseBool = function(str) {
|
||||
str = "" + str;
|
||||
for (var i = 0; i < boolTrue.length; i++) {
|
||||
if (nstrutil.equals(str, boolTrue[i])) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
for (var i = 0; i < boolFalse.length; i++) {
|
||||
if (nstrutil.equals(str, boolFalse[i])) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
};
|
||||
})(this);
|
||||
@@ -354,8 +354,244 @@
|
||||
<lang name="zh-CN">正在卸载... {0}%</lang>
|
||||
<lang name="en-US">Uninstalling... {0}%</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_UNINSTALL_SUCCEED">
|
||||
<resource id="MANAGER_APP_UNINSTALL_SUCCEED">
|
||||
<lang name="zh-CN">已成功卸载。</lang>
|
||||
<lang name="en-US">Uninstall succeeded.</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_TITLE">
|
||||
<lang name="zh-CN">创建桌面快捷方式</lang>
|
||||
<lang name="en-US">Create Desktop Shortcut</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_DESC">
|
||||
<lang name="zh-CN">桌面上将创建一个快捷方式,作为启动 Windows 商店应用的入口点。由于 Windows 8.x 的限制,此操作将通过启动程序(使用参数)来实现;请勿将其固定到“开始”菜单。</lang>
|
||||
<lang name="en-US">A shortcut to the Windows Store app will be created on the desktop as the entry point for launching the app. Due to limitations in Windows 8.x, this will be achieved through launching the program (using parameters); please do not pin it to the Start Menu.</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_ICONTYPE">
|
||||
<lang name="zh-CN">请选择设置图标设置模式。</lang>
|
||||
<lang name="en-US">Please select the icon settings mode.</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_ICONTYPE_GEN">
|
||||
<lang name="zh-CN">生成新的图标</lang>
|
||||
<lang name="en-US">Generate new icon</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_ICONTYPE_SEL">
|
||||
<lang name="zh-CN">选择现有图标</lang>
|
||||
<lang name="en-US">Select existing icon</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_ICONTYPE_SEL_ICONPATH">
|
||||
<lang name="zh-CN">请选择图标路径: </lang>
|
||||
<lang name="en-US">Please select icon path: </lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_BROWSE">
|
||||
<lang name="zh-CN">浏览...</lang>
|
||||
<lang name="en-US">Browse...</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_PREVIEW">
|
||||
<lang name="zh-CN">预览:</lang>
|
||||
<lang name="en-US">Preview:</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_SELECT">
|
||||
<lang name="zh-CN">选择</lang>
|
||||
<lang name="en-US">Select</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_GENERATE">
|
||||
<lang name="zh-CN">创建</lang>
|
||||
<lang name="en-US">Create</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_CANCEL">
|
||||
<lang name="zh-CN">取消</lang>
|
||||
<lang name="en-US">Cancel</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_BACKGROUNDCOLOR">
|
||||
<lang name="zh-CN">背景颜色</lang>
|
||||
<lang name="en-US">Background Color</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_RATIO">
|
||||
<lang name="zh-CN">背景与前景的边长比</lang>
|
||||
<lang name="en-US">Background-to-foreground edge ratio</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_RATIO_CUSTOM">
|
||||
<lang name="zh-CN">自定义</lang>
|
||||
<lang name="en-US">Custom</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_RATIO_CUSTOMRATIO">
|
||||
<lang name="zh-CN">自定义比例</lang>
|
||||
<lang name="en-US">Custom Ratio</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_DISPLAYNAME">
|
||||
<lang name="zh-CN">快捷方式显示名</lang>
|
||||
<lang name="en-US">Shortcut Display Name</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_IMAGELIST">
|
||||
<lang name="zh-CN">图片列表</lang>
|
||||
<lang name="en-US">Image List</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_SIZE">
|
||||
<lang name="zh-CN">尺寸</lang>
|
||||
<lang name="en-US">Size</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_IMAGE">
|
||||
<lang name="zh-CN">图像</lang>
|
||||
<lang name="en-US">Image</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_LOADING">
|
||||
<lang name="zh-CN">请稍候...</lang>
|
||||
<lang name="en-US">Please wait...</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_SETIMG_TITLE">
|
||||
<lang name="zh-CN">设置当前图片</lang>
|
||||
<lang name="en-US">Set Current Image</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_SETIMG_CURRSIZE">
|
||||
<lang name="zh-CN">当前尺寸</lang>
|
||||
<lang name="en-US">Current Size</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_SETIMG_USEDEF">
|
||||
<lang name="zh-CN">使用预设资源</lang>
|
||||
<lang name="en-US">Use Default Resources</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_SETIMG_USEFILE">
|
||||
<lang name="zh-CN">使用自定义文件</lang>
|
||||
<lang name="en-US">Use Custom File</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_SETIMG_FILEPATH">
|
||||
<lang name="zh-CN">文件路径</lang>
|
||||
<lang name="en-US">File Path</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_SETIMG_SET">
|
||||
<lang name="zh-CN">设置</lang>
|
||||
<lang name="en-US">Set</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_ASK_ICONEXISTS">
|
||||
<lang name="zh-CN">发现图标文件已经存在,是否继续生成?生成的图标文件不会覆盖已有文件。</lang>
|
||||
<lang name="en-US">Icon file already exists, do you want to continue generating? The generated icon file will not overwrite existing files.</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_BACK_TITLE">
|
||||
<lang name="zh-CN">正在生成快捷方式</lang>
|
||||
<lang name="en-US">Generating Shortcut</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_BACK_TEXT_ING">
|
||||
<lang name="zh-CN">正在生成快捷方式...</lang>
|
||||
<lang name="en-US">Generating Shortcut...</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_BACK_TITLE_SUCCEED">
|
||||
<lang name="zh-CN">已生成快捷方式</lang>
|
||||
<lang name="en-US">Shortcut Generated</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_BACK_TEXT_SUCCEED">
|
||||
<lang name="zh-CN">已成功生成快捷方式。</lang>
|
||||
<lang name="en-US">Shortcut generated successfully.</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_BACK_TITLE_FAILED">
|
||||
<lang name="zh-CN">生成时出现问题</lang>
|
||||
<lang name="en-US">Error Generating Shortcut</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP_SHORTCUTCREATE_OPENINSTALLLOCATION">
|
||||
<lang name="zh-CN">打开安装位置</lang>
|
||||
<lang name="en-US">Open Install Location</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_APP">
|
||||
<lang name="zh-CN">应用信息</lang>
|
||||
<lang name="en-US">App Information</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_LOAD">
|
||||
<lang name="zh-CN">安装与注册</lang>
|
||||
<lang name="en-US">Install & Register</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_LOAD_DESC">
|
||||
<lang name="zh-CN">在这里,可以进行对应用的安装、注册等操作。</lang>
|
||||
<lang name="en-US">Here, you can perform installations, registrations, and other operations on apps.</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_LOAD_INSTALL">
|
||||
<lang name="zh-CN">安装</lang>
|
||||
<lang name="en-US">Install</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_LOAD_INSTALL_BTN">
|
||||
<lang name="zh-CN">安装</lang>
|
||||
<lang name="en-US">Install</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_LOAD_INSTALL_DESC">
|
||||
<lang name="zh-CN">将应用部署到系统中。</lang>
|
||||
<lang name="en-US">Deploy the app to the system.</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_LOAD_DEPLOY_OPTIONS">
|
||||
<lang name="zh-CN">部署选项</lang>
|
||||
<lang name="en-US">Deploy Options</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_LOAD_DEPLOY_OPTIONS_DEVELOPMENT_MODE">
|
||||
<lang name="zh-CN">开发模式</lang>
|
||||
<lang name="en-US">Development Mode</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_LOAD_DEPLOY_OPTIONS_FORCE_APP_SHUTDOWN">
|
||||
<lang name="zh-CN">强制关闭应用</lang>
|
||||
<lang name="en-US">Force App Shutdown</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_LOAD_DEPLOY_OPTIONS_INSTALL_ALL_RESOURCES">
|
||||
<lang name="zh-CN">安装所有资源 (对于捆绑包)</lang>
|
||||
<lang name="en-US">Install All Resources (for Bundle Packages)</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_LOAD_REGISTER">
|
||||
<lang name="zh-CN">注册</lang>
|
||||
<lang name="en-US">Register</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_LOAD_REGISTER_BTN">
|
||||
<lang name="zh-CN">注册</lang>
|
||||
<lang name="en-US">Register</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_LOAD_REGISTER_DESC">
|
||||
<lang name="zh-CN">将应用清单注册到系统中。</lang>
|
||||
<lang name="en-US">Register the app manifest to the system.</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_LOAD_STAGE">
|
||||
<lang name="zh-CN">预部署</lang>
|
||||
<lang name="en-US">Stage</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_LOAD_STAGE_DESC">
|
||||
<lang name="zh-CN">将应用预部署到系统中。</lang>
|
||||
<lang name="en-US">Stage the app to the system.</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_LOAD_STAGE_BTN">
|
||||
<lang name="zh-CN">预部署</lang>
|
||||
<lang name="en-US">Stage</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_LOAD_INSTALL_ING">
|
||||
<lang name="zh-CN">正在安装... {0}</lang>
|
||||
<lang name="en-US">Installing... {0}</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_LOAD_REGISTER_ING">
|
||||
<lang name="zh-CN">正在注册... {0}</lang>
|
||||
<lang name="en-US">Registering... {0}</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_LOAD_STAGE_ING">
|
||||
<lang name="zh-CN">正在预部署... {0}</lang>
|
||||
<lang name="en-US">Staging... {0}</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_LOAD_INSTALL_SUCCEED">
|
||||
<lang name="zh-CN">安装完成</lang>
|
||||
<lang name="en-US">Install Complete.</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_LOAD_REGISTER_SUCCEED">
|
||||
<lang name="zh-CN">注册完成</lang>
|
||||
<lang name="en-US">Registration Complete.</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_LOAD_STAGE_SUCCEED">
|
||||
<lang name="zh-CN">预部署完成</lang>
|
||||
<lang name="en-US">Staging Complete.</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_LOAD_INS_OR_STA_FILTERDISPLAY">
|
||||
<lang name="zh-CN">Windows 商店应用包 (*.appx, *.appxbundle, *.msix, *.msixbundle)</lang>
|
||||
<lang name="en-US">Windows Store App Package (*.appx, *.appxbundle, *.msix, *.msixbundle)</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_LOAD_REG_FILTERDISPLAY">
|
||||
<lang name="zh-CN">Windows 商店应用清单文件 (*.appxmanifest, *AppxManifest.xml)</lang>
|
||||
<lang name="en-US">Windows Store App Manifest File (*.appxmanifest, *AppxManifest.xml)</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_LOAD_ALLFILES">
|
||||
<lang name="zh-CN">所有文件 (*.*)</lang>
|
||||
<lang name="en-US">All Files (*.*)</lang>
|
||||
</resource>
|
||||
<resource id="MANAGER_SETTINGS">
|
||||
<lang name="zh-CN">设置</lang>
|
||||
<lang name="en-US">Settings</lang>
|
||||
</resource>
|
||||
</resources>
|
||||
@@ -1 +1 @@
|
||||
0.2.2.3
|
||||
0.3.0.0
|
||||
Reference in New Issue
Block a user