Add full shell, replaceable Omics adapter and bilingual interaction
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.
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
// 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 };
|
||||
Reference in New Issue
Block a user