Every template and handler message in internal/web goes through a JSON
catalogue under internal/web/locales/<code>/, with English as the fallback.
The language is the person's choice (a cookie set by /_lang/{code}), else
Accept-Language, else landing.language. Tests refuse a key some language
lacks, a translation with other arguments than English, and template text
left in English.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
48 lines
2.7 KiB
JSON
48 lines
2.7 KiB
JSON
{
|
|
"chat.title": "Chat",
|
|
"chat.context.using": "Using",
|
|
"chat.context.switch": "switch",
|
|
"chat.model": "Model",
|
|
"chat.model.simulated": "(simulated)",
|
|
"chat.model.not_loaded": "(not loaded)",
|
|
"chat.new": "New conversation",
|
|
"chat.settings": "Settings",
|
|
"chat.settings.system": "System prompt",
|
|
"chat.settings.system_hint": "how the model should behave, sent before every turn",
|
|
"chat.settings.system_placeholder": "You are a concise assistant. Answer in the language of the question.",
|
|
"chat.settings.temperature": "Temperature",
|
|
"chat.settings.temperature_hint": "lower is steadier, higher more varied",
|
|
"chat.note.simulated": "This model is simulated: it exercises scheduling and reports timings, and its replies are placeholder text, not inference.",
|
|
"chat.note.on_demand": "This model is not running. The first message loads it onto a node — fetching its weights and starting the engine, minutes for a large model — and is sent once it is up.",
|
|
"chat.input_placeholder": "Ask something…",
|
|
"chat.send": "Send",
|
|
"chat.kept": "The conversation is kept in this browser, so a reload does not lose it; \"New conversation\" clears it. Nothing of it is stored on the gateway — what is recorded there is the same usage any request records: tokens, cost and latency.",
|
|
"chat.empty": "No models are available to you right now.",
|
|
"chat.empty_why": "Either nothing is placed yet, or your project's allowlist does not include anything that is. <code>/admin</code> shows the cluster if you have access to it.",
|
|
|
|
"chat.js.preparing": "Preparing…",
|
|
"chat.js.download_failed": "download failed",
|
|
"chat.js.stage.waiting": "Waiting for a node with room",
|
|
"chat.js.stage.downloading": "Downloading weights",
|
|
"chat.js.stage.starting": "Starting the engine",
|
|
"chat.js.stage.ready": "Ready",
|
|
"chat.js.of": "{done} of {total}",
|
|
"chat.js.could_not_start": "the model could not be started",
|
|
"chat.js.tokens": "{n} tokens",
|
|
"chat.js.tok_per_s": "{n} tok/s",
|
|
"chat.js.first_token": "first token {n} s",
|
|
"chat.js.seconds": "{n} s",
|
|
"chat.js.stopped": "stopped",
|
|
"chat.js.stop": "Stop",
|
|
"chat.js.refused": "Refused by the gateway's policy{policy}: {message}",
|
|
"chat.js.download_zip": "Download as .zip",
|
|
"chat.js.stopped_by_policy": "Stopped by the gateway's policy{policy}.",
|
|
"chat.js.cut_off": "Cut off at the length limit — ask it to continue.",
|
|
"chat.js.stopped_by_policy_empty": "(stopped by the gateway's policy{policy} before anything was shown)",
|
|
"chat.js.stopped_empty": "(stopped before anything came back)",
|
|
"chat.js.no_content": "(no content came back)",
|
|
|
|
"download.err.read": "could not read the request",
|
|
"download.err.no_code": "there is no code in that reply to download"
|
|
}
|