Files
2026-06-30 22:53:53 +08:00

50 lines
1.9 KiB
JavaScript

import { app } from "../../../scripts/app.js";
app.registerExtension({
name: "TomatoCrypt.LocaleHelper",
async beforeRegisterNodeDef(nodeType, nodeData, app) {
if (nodeData.name !== "TomatoCrypt") return;
const onNodeCreated = nodeType.prototype.onNodeCreated;
nodeType.prototype.onNodeCreated = function () {
onNodeCreated?.apply(this, arguments);
const userLang = app.ui.settings.getSettingValue("Comfy.Locale") || navigator.language || "en";
const langWidget = this.widgets?.find(w => w.name === "language_code");
if (langWidget) {
langWidget.value = userLang;
langWidget.hidden = true;
langWidget.type = "converted-widget";
//langWidget.computeSize = () => [0, -4];
}
};
},
async setup(app) {
const original_queuePrompt = app.queuePrompt;
app.queuePrompt = async function (number, batch_count) {
try {
const nodes = app.graph?.findNodesByType("TomatoCrypt");
if (nodes?.length) {
const userLang = app.ui.settings.getSettingValue("Comfy.Locale") || navigator.language || "en";
for (const node of nodes) {
const langWidget = node.widgets?.find(w => w.name === "language_code");
if (langWidget) {
langWidget.value = userLang;
langWidget.hidden = true;
langWidget.type = "converted-widget";
//langWidget.computeSize = () => [0, -4];
}
}
}
} catch (e) {
console.error("Locale update failed:", e);
}
return original_queuePrompt.apply(this, arguments);
};
}
});