Implement approved specification #32 and tickets #33-#37. Keep host authentication server-verified and pin session interaction language. Compile scoped base selectors for browser compatibility and retain full gutters during CSS pruning.
42 lines
2.8 KiB
JavaScript
42 lines
2.8 KiB
JavaScript
// Only deterministic chrome is translated. Model prose and domain payloads are opaque.
|
|
const en = {
|
|
save: "Save and proceed", reject: "Reject", continue: "Continue",
|
|
approvalPrompt: "Approve or reject?", chooseApproval: "Choose Save and proceed or Reject.",
|
|
datamartTitle: "Generate a datamart?", datamartYes: "Yes, generate the datamart",
|
|
datamartNo: "No, skip the datamart",
|
|
memoryTitle: "Select memories to apply to the question", memorySelection: "memories to apply",
|
|
memoryApply: "Apply selected memories", memoryEmpty: "No reusable memories for this question; continuing to the next phase.",
|
|
memorySummary: "Memory for future questions", archiveRepair: "Resolve archive conflict",
|
|
repairError: "The correction could not complete. Review the current archive state before retrying.",
|
|
ledgerTitle: "Decisions recorded in this phase (from the ledger)",
|
|
escapeHelp: "Esc does not close the gate: use Back / Exit / Other.",
|
|
inputHelp: "Answer through the gate widgets. To send free text to the model, start the line with '!'.",
|
|
memoryIndexWarning: "Memory saved. Index update is incomplete; an administrator can retry it in Memory management.",
|
|
backUsage: "Usage: /torna <session_id> [N]",
|
|
backInvalid: "Invalid target (current phase {phase}).",
|
|
decision: "Decision",
|
|
};
|
|
const it = {
|
|
save: "Salva e procedi", reject: "Rifiuta", continue: "Continua",
|
|
approvalPrompt: "Approvi o rifiuti?", chooseApproval: "Scegli «Salva e procedi» o «Rifiuta».",
|
|
datamartTitle: "Vuoi generare un datamart?", datamartYes: "Sì, genera il datamart",
|
|
datamartNo: "No, salta il datamart",
|
|
memoryTitle: "Seleziona le memory da applicare alla domanda", memorySelection: "memory da applicare",
|
|
memoryApply: "Applica le memory selezionate", memoryEmpty: "Nessuna memory riutilizzabile per questa domanda — passo alla fase successiva.",
|
|
memorySummary: "Memory per le domande future", archiveRepair: "Risolvi il conflitto negli archivi",
|
|
repairError: "La correzione non è stata completata. Verifica lo stato attuale degli archivi prima di riprovare.",
|
|
ledgerTitle: "Decisioni registrate in questa fase (dal ledger)",
|
|
escapeHelp: "Esc non chiude il gate: usa Torna indietro / Esci / Altro dalle opzioni.",
|
|
inputHelp: "Durante la sessione rispondi con i widget del gate. Per inviare testo libero al modello inizia la riga con '!'.",
|
|
memoryIndexWarning: "Memory salvata. L'aggiornamento dell'indice è incompleto; un amministratore può riprovarlo da Gestione Memory.",
|
|
backUsage: "Uso: /torna <session_id> [N]",
|
|
backInvalid: "Target non valido (fase corrente {phase}).",
|
|
decision: "Decisione",
|
|
};
|
|
const catalogs = { en, it };
|
|
function gateText(locale, key) {
|
|
const language = String(locale || "en").toLowerCase().split("-")[0];
|
|
return catalogs[language]?.[key] ?? en[key];
|
|
}
|
|
module.exports = { gateText };
|