50 lines
1.9 KiB
JavaScript
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);
|
|
};
|
|
}
|
|
}); |