[Chore] Autotranslation tool using DMR (#4907)

* update translations + DMR loading

* updates to misspellings
This commit is contained in:
Timothy Carambat 2026-01-27 09:29:37 -08:00 committed by GitHub
parent 8f5929712c
commit cd5530de39
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
26 changed files with 4270 additions and 3370 deletions

View File

@ -0,0 +1,2 @@
DOCKER_MODEL_RUNNER_BASE_PATH='http://127.0.0.1:12434/engines/llama.cpp/v1'
DOCKER_MODEL_RUNNER_LLM_MODEL_TOKEN_LIMIT=128000

View File

@ -0,0 +1,29 @@
# AnythingLLM Auto-translater
The AnythingLLM Auto-translator is a way for us to translate our locales but at no cost or overhead. However these are expected to be run manually and while they may not be 100% accurate improvement in models have made this work trivial without the need for an api.
## Getting started
- Install Docker [w/Docker Model Runner](https://docs.docker.com/ai/model-runner/)
- `docker pull model mintplexlabs/translategemma4b:Q4_K_M`
- Ensure TCP connections in for Docker Model Runner extension is live.
- `cd extras/translator && cp .env.example .env`
## Run the script
All translations are based on english dictionary. So the English dictionary must have an entry for it to be supported.
`cd extras/translator`
**Target a specific language**
`node index.mjs <lang-code>` eg: `node index.mjs es` for Spanish.
**Do all languages**
`node index.mjs --all` _this is NOT recommended_
## Gotchas
- Sometimes translations go on for a while until the token window is exceeded - you can see this by the massive lines extending beyond the page.
- Some languages operate different with single words or special symbols like "@" and will go off the rails. If the English text is one word and the translated text is 100 words, you dont need to be linguist to know that it is probably wrong.
- You should always review every line for discrepencies or removal of `{{}}` inputs or brand name hallunications eg: `AnyLLM` instead of `AnythingLLM`

186
extras/translator/index.mjs Normal file
View File

@ -0,0 +1,186 @@
import fs from 'fs';
import {resources} from '../../frontend/src/locales/resources.js';
import "../../server/node_modules/dotenv/lib/main.js";
import DMRModule from '../../server/utils/AiProviders/dockerModelRunner/index.js';
const { DockerModelRunnerLLM, getDockerModels } = DMRModule;
function getNestedValue(obj, path) {
const keys = path.split('.');
let result = obj;
for (const key of keys) {
if (result == null) return undefined;
result = result[key];
}
return result;
}
function setNestedValue(obj, path, value) {
const keys = path.split('.');
let result = obj;
for (let i = 0; i < keys.length - 1; i++) {
const key = keys[i];
if (result[key] == null) result[key] = {};
result = result[key];
}
result[keys[keys.length - 1]] = value;
}
class Translator {
static modelTag = 'mintplexlabs/translategemma4b:Q4_K_M'
constructor(provider = "dmr") {
switch (provider) {
case "dmr":
this.provider = new DockerModelRunnerLLM(null, Translator.modelTag);
break;
default:
throw new Error(`Unsupported provider: ${provider}`);
}
this.localeObj = new Intl.DisplayNames(Object.keys(resources), { type: 'language' });
}
getLanguageName(localeCode) {
try {
return this.localeObj.of(localeCode);
} catch (error) {
console.error("Error getting language name:", error);
return null;
}
}
#log(text, ...args) {
console.log(`\x1b[32m[Translator]\x1b[0m ${text}`, ...args);
}
static slog(text, ...args) {
console.log(`\x1b[32m[Translator]\x1b[0m ${text}`, ...args);
}
buildPrompt(text, sourceLangCode, targetLangCode) {
const sourceLanguage = this.getLanguageName(sourceLangCode);
const targetLanguage = this.getLanguageName(targetLangCode);
return `You are a professional ${sourceLanguage} (${sourceLangCode.toLowerCase()}) to ${targetLanguage} (${sourceLangCode.toLowerCase()}) translator. Your goal is to accurately convey the meaning and nuances of the original ${sourceLanguage} text while adhering to ${targetLanguage} grammar, vocabulary, and cultural sensitivities.
Produce only the ${targetLanguage} translation, without any additional explanations or commentary. Please translate the following ${sourceLanguage} text into ${targetLanguage}:
${text}`
}
async verifyReady() {
const models = await getDockerModels(process.env.DOCKER_MODEL_RUNNER_BASE_PATH);
if(!models.find(m => m.id.toLowerCase() === Translator.modelTag.toLowerCase())) throw new Error(`Model ${Translator.modelTag} not found. Pull with docker model pull ${Translator.modelTag}`);
return true;
}
/**
* Clean the output text from the model
* Output text: `在助手回复中呈现 HTML 响应。这可以显著提高回复的质量,但也可能带来潜在的安全风险。<|im_end|>`
* We want to remove the <|im_end|> or im_start tags
* @param {*} text
* @returns
*/
cleanOutputText(text) {
return text.replace(/<\|im_end\|>|<\|im_start\|>/g, '').trim();
}
async translate(text, sourceLangCode, targetLangCode) {
await this.verifyReady();
const prompt = this.buildPrompt(text, sourceLangCode, targetLangCode);
const response = await this.provider.getChatCompletion([{ role: 'user', content: prompt }], { temperature: 0.1 });
return this.cleanOutputText(response.textResponse);
}
writeTranslations(langCode, translations) {
let langFilename = langCode.toLowerCase();
// Special cases
if(langCode === 'pt') langFilename = 'pt_BR';
if(langCode === 'zh-tw') langFilename = 'zh_TW';
fs.writeFileSync(
`../../frontend/src/locales/${langFilename}/common.js`,
`// Anything with "null" requires a translation. Contribute to translation via a PR!
const TRANSLATIONS = ${JSON.stringify(translations, null, 2)}
export default TRANSLATIONS;`
);
console.log(`Updated ${langCode} translations file`);
}
}
// Deep traverse the english translations and get all the path to any all keys
const translator = new Translator("dmr");
const englishTranslations = resources.en.common;
const allKeys = [];
function traverseTranslations(translations, parentKey = '') {
for(const [key, value] of Object.entries(translations)) {
if(typeof value === 'object') {
const newKey = !parentKey ? key : `${parentKey}.${key}`;
traverseTranslations(value, newKey);
} else {
allKeys.push(`${parentKey}.${key}`);
}
}
}
traverseTranslations(englishTranslations);
delete resources.en;
async function translateAllLanguages() {
for(const [langCode, { common }] of Object.entries(resources)) {
console.log(`Translating ${translator.getLanguageName(langCode)}(${langCode}) to all languages`);
await translateSingleLanguage(langCode);
}
}
async function translateSingleLanguage(langCode) {
let totalTranslations = 0;
for(const key of allKeys) {
const sourceText = getNestedValue(englishTranslations, key);
if(!sourceText) continue;
// If the source text is @agent, set the translation to @agent - this has no
// direct translation and must be handled manually
if(sourceText === '@agent') {
setNestedValue(resources[langCode].common, key, '@agent');
continue;
}
if(sourceText === '/reset') {
setNestedValue(resources[langCode].common, key, '/reset');
continue;
}
const value = getNestedValue(resources[langCode].common, key);
if(!!value) continue; // If the translation is already present, skip it
console.log(`Translation not found for ${translator.getLanguageName(langCode)}(${langCode})`, {
key,
sourceText,
});
const outputText = await translator.translate(sourceText, 'en', langCode);
if(!outputText) {
console.log('No output text - skipping');
continue;
}
console.log(`Output text: ${outputText}`);
setNestedValue(resources[langCode].common, key, outputText);
console.log(`--------------------------------`);
totalTranslations++;
}
console.log(`--------------------------------`);
console.log(`Translated ${totalTranslations} translations for ${langCode}`);
translator.writeTranslations(langCode, resources[langCode].common);
console.log(`--------------------------------`);
}
let langArg = process.argv[2];
if(langArg) {
if(langArg.toLowerCase() === '--all') await translateAllLanguages();
else {
if(!Object.keys(resources).includes(langArg)) throw new Error(`Language ${langArg} not found in resources`);
await translateSingleLanguage(langArg);
}
} else {
throw new Error('Please provide a language code as an argument or --all to translate all languages');
}

File diff suppressed because it is too large Load Diff

View File

@ -913,7 +913,7 @@ const TRANSLATIONS = {
cancel: "Zrušit",
edit_prompt: "Upravit výzvu",
edit_response: "Upravit odpověď",
at_agent: "@agenta",
at_agent: "@agent",
default_agent_description: " - výchozí agent pro tento pracovní prostor.",
custom_agents_coming_soon: "vlastní agenti přicházejí brzy!",
slash_reset: "/reset",

File diff suppressed because one or more lines are too long

View File

@ -68,7 +68,7 @@ const TRANSLATIONS = {
optional: "Optional",
yes: "Ja",
no: "Nein",
search: null,
search: "Suchen",
username_requirements:
"Der Benutzername muss 2-32 Zeichen lang sein, mit einem Kleinbuchstaben beginnen und darf nur Kleinbuchstaben, Zahlen, Unterstriche, Bindestriche und Punkte enthalten.",
},
@ -103,7 +103,7 @@ const TRANSLATIONS = {
contact: "Support kontaktieren",
"browser-extension": "Browser-Extension",
"system-prompt-variables": "Systempromptvariablen",
"mobile-app": null,
"mobile-app": "AnythingLLM Mobile",
},
login: {
"multi-user": {
@ -316,8 +316,9 @@ const TRANSLATIONS = {
query: "Abfrage",
"desc-end":
"modus, möchten Sie vielleicht eine benutzerdefinierte Ablehnungsantwort zurückgeben, wenn kein Kontext gefunden wird.",
"tooltip-title": null,
"tooltip-description": null,
"tooltip-title": "Warum sehe ich das?",
"tooltip-description":
"Sie befinden sich im Abfragemodus, der nur Informationen aus Ihren Dokumenten verwendet. Wechseln Sie in den Chat-Modus für flexiblere Gespräche oder klicken Sie hier, um unsere Dokumentation zu besuchen und mehr über Chat-Modi zu erfahren.",
},
temperature: {
title: "LLM-Temperatur",
@ -408,7 +409,8 @@ const TRANSLATIONS = {
"Die Websuche während Agentensitzungen funktioniert erst, wenn dies eingerichtet ist.",
},
},
"performance-warning": null,
"performance-warning":
"Die Leistung von LLMs, die keine explizite Unterstützung für das Aufrufen von Tools bieten, hängt stark von den Fähigkeiten und der Genauigkeit des Modells ab. Einige Fähigkeiten können eingeschränkt oder nicht funktionsfähig sein.",
},
recorded: {
title: "Workspace-Chats",
@ -524,8 +526,9 @@ const TRANSLATIONS = {
link: "Link",
},
"render-html": {
title: null,
description: null,
title: "HTML-Code in einem Chat anzeigen",
description:
"HTML-Antworten in den Antworten des Assistenten anzeigen.\nDies kann zu einer viel höheren Qualität der Antwort führen, aber auch zu potenziellen Sicherheitsrisiken führen.",
},
},
},
@ -555,7 +558,8 @@ const TRANSLATIONS = {
model_type: "Art des Modells",
default: "Standard",
reasoning: "Reasoning",
model_type_tooltip: null,
model_type_tooltip:
'Wenn Ihre Bereitstellung ein Reasoning-Modell verwendet (z. B. o1, o1-mini, o3-mini usw.), setzen Sie dies auf "Reasoning". Andernfalls können Ihre Chat-Anfragen fehlschlagen.',
},
},
},
@ -787,8 +791,9 @@ const TRANSLATIONS = {
pat_token_explained: "Ihr Confluence persönliches Zugriffstoken.",
task_explained:
"Sobald der Vorgang abgeschlossen ist, ist der Seiteninhalt im Dokumenten-Picker zur Einbettung in Workspaces verfügbar.",
bypass_ssl: null,
bypass_ssl_explained: null,
bypass_ssl: "SSL-Zertifikatsvalidierung umgehen",
bypass_ssl_explained:
"Aktivieren Sie diese Option, um die SSL-Zertifikatsvalidierung für selbst gehostete Confluence-Instanzen mit selbstsignierten Zertifikaten zu umgehen.",
},
manage: {
documents: "Dokumente",
@ -951,83 +956,104 @@ const TRANSLATIONS = {
community_hub: {
publish: {
system_prompt: {
success_title: null,
success_description: null,
success_thank_you: null,
view_on_hub: null,
modal_title: null,
name_label: null,
name_description: null,
name_placeholder: null,
description_label: null,
description_description: null,
tags_label: null,
tags_description: null,
tags_placeholder: null,
visibility_label: null,
public_description: null,
private_description: null,
publish_button: null,
submitting: null,
submit: null,
prompt_label: null,
prompt_description: null,
prompt_placeholder: null,
success_title: "Erfolg!",
success_description:
"Ihre System-Anweisung wurde im Community Hub veröffentlicht!",
success_thank_you: "Vielen Dank für die Weitergabe an die Community!",
view_on_hub: "Ansicht im Community Hub",
modal_title:
"Veröffentlichen Sie das System, um die Benutzer zu informieren, dass das System nicht mehr verfügbar ist.",
name_label: "Name",
visibility_label: "Sichtbarkeit",
public_description: "Öffentliche Anweisungen sind für alle sichtbar.",
private_description:
"Private System-Nachrichten sind nur für Sie sichtbar.",
publish_button: "Veröffentlichen Sie im Community Hub",
submitting: "Veröffentlichung...",
submit: "Veröffentlichen Sie im Community Hub",
prompt_label: "Prompt",
prompt_description:
"Dies ist der eigentliche Systemprompt, der verwendet wird, um das LLM zu steuern.",
prompt_placeholder: "Bitte geben Sie Ihren Systemprompt hier ein...",
name_description: "Dies ist der Anzeigename für Ihren Systemprompt.",
name_placeholder: "Mein System-Prompt",
description_label: "Beschreibung",
description_description:
"Dies ist die Beschreibung Ihres System-Prompts. Verwenden Sie dies, um den Zweck Ihres System-Prompts zu beschreiben.",
tags_label: "Schlüsselwörter",
tags_description:
"Die Tags werden verwendet, um Ihre Systemanweisung für eine einfachere Suche zu kennzeichnen. Sie können mehrere Tags hinzufügen. Maximal 5 Tags. Maximal 20 Zeichen pro Tag.",
tags_placeholder:
"Geben Sie den Text ein und drücken Sie die Eingabetaste, um Tags hinzuzufügen.",
},
agent_flow: {
public_description: null,
private_description: null,
success_title: null,
success_description: null,
success_thank_you: null,
view_on_hub: null,
modal_title: null,
name_label: null,
name_description: null,
name_placeholder: null,
description_label: null,
description_description: null,
tags_label: null,
tags_description: null,
tags_placeholder: null,
visibility_label: null,
publish_button: null,
submitting: null,
submit: null,
privacy_note: null,
public_description: "Öffentliche Datenströme sind für alle sichtbar.",
private_description: "Private Agent-Daten sind nur für Sie sichtbar.",
success_title: "Erfolg!",
success_description:
"Ihr Agent Flow wurde auf dem Community Hub veröffentlicht!",
success_thank_you: "Vielen Dank für die Weitergabe an die Community!",
view_on_hub: "Ansicht im Community Hub",
modal_title: "Veröffentlichen Sie den Agentenfluss.",
name_label: "Name",
name_description: "Dies ist der Anzeigename für Ihren Agentenablauf.",
name_placeholder: "Mein Agent Flow",
description_label: "Beschreibung",
description_description:
"Dies ist die Beschreibung Ihres Agentenflusses. Verwenden Sie diese, um den Zweck Ihres Agentenflusses zu beschreiben.",
tags_label: "Schlüsselwörter",
tags_description:
"Die Tags werden verwendet, um Ihren Agentenfluss leichter durchsuchbar zu machen. Sie können mehrere Tags hinzufügen. Maximal 5 Tags. Maximal 20 Zeichen pro Tag.",
tags_placeholder:
"Geben Sie Tags ein und drücken Sie die Eingabetaste, um sie hinzuzufügen.",
visibility_label: "Sichtbarkeit",
publish_button: "Veröffentlichen Sie im Community Hub",
submitting: "Veröffentlichung...",
submit: "Veröffentlichen Sie im Community Hub",
privacy_note:
"Agent-Prozesse werden immer privat hochgeladen, um sensible Daten zu schützen. Sie können die Sichtbarkeit im Community Hub nach der Veröffentlichung ändern. Bitte überprüfen Sie, ob Ihr Prozess keine sensiblen oder privaten Informationen enthält, bevor Sie ihn veröffentlichen.",
},
generic: {
unauthenticated: {
title: null,
description: null,
button: null,
title: "Benötigte Authentifizierung",
description:
"Sie müssen sich vor der Veröffentlichung von Inhalten über den AnythingLLM Community Hub authentifizieren.",
button: "Verbinden Sie sich mit dem Community Hub",
},
},
slash_command: {
success_title: null,
success_description: null,
success_thank_you: null,
view_on_hub: null,
modal_title: null,
name_label: null,
name_description: null,
name_placeholder: null,
description_label: null,
description_description: null,
command_label: null,
command_description: null,
command_placeholder: null,
tags_label: null,
tags_description: null,
tags_placeholder: null,
visibility_label: null,
public_description: null,
private_description: null,
publish_button: null,
submitting: null,
prompt_label: null,
prompt_description: null,
prompt_placeholder: null,
success_title: "Erfolg!",
success_description:
"Ihre Slash-Befehle wurden im Community Hub veröffentlicht!",
success_thank_you: "Vielen Dank für die Weitergabe an die Community!",
view_on_hub: "Ansicht im Community Hub",
modal_title: "Slash-Befehle veröffentlichen",
name_label: "Name",
name_description: "Dies ist der Anzeigename für Ihren Slash-Befehl.",
name_placeholder: "Meine Slash-Befehle",
description_label: "Beschreibung",
description_description:
"Dies ist die Beschreibung für Ihren Slash-Befehl. Verwenden Sie diese, um den Zweck Ihres Slash-Befehls zu beschreiben.",
command_label: "Befehl",
command_description:
"Dies ist der Slash-Befehl, den Benutzer eingeben, um diese Voreinstellung auszulösen.",
command_placeholder: "mein-befehl",
tags_label: "Schlüsselwörter",
tags_description:
"Die Tags werden verwendet, um Ihren Slash-Befehl zu kennzeichnen und die Suche zu erleichtern. Sie können mehrere Tags hinzufügen. Maximal 5 Tags. Maximal 20 Zeichen pro Tag.",
tags_placeholder:
"Geben Sie Tags ein und drücken Sie die Eingabetaste, um sie hinzuzufügen.",
visibility_label: "Sichtbarkeit",
public_description:
"Öffentliche Slash-Befehle sind für jeden sichtbar.",
private_description: "Private Slash-Befehle sind nur für Sie sichtbar.",
publish_button: "Veröffentlichen Sie im Community Hub",
submitting: "Veröffentlichung...",
prompt_label:
"Bitte geben Sie den Namen des Produkts an, das Sie verkaufen möchten.",
prompt_description:
"Dies ist der Befehl, der verwendet wird, wenn der Slash-Befehl ausgelöst wird.",
prompt_placeholder: "Bitte geben Sie Ihre Anfrage hier ein...",
},
},
},

View File

@ -103,7 +103,7 @@ const TRANSLATIONS = {
"experimental-features": "Funciones experimentales",
contact: "Contactar con soporte",
"browser-extension": "Extensión del navegador",
"mobile-app": null,
"mobile-app": "AnythingLLM Móvil",
},
login: {
"multi-user": {
@ -535,8 +535,9 @@ const TRANSLATIONS = {
link: "Enlace",
},
"render-html": {
title: null,
description: null,
title: "Renderizar HTML en el chat",
description:
"Generar respuestas en HTML en las respuestas del asistente.\nEsto puede resultar en una mayor calidad de las respuestas, pero también puede generar posibles riesgos de seguridad.",
},
},
},
@ -566,7 +567,8 @@ const TRANSLATIONS = {
model_type: "Tipo de modelo",
default: "Predeterminado",
reasoning: "Razonamiento",
model_type_tooltip: null,
model_type_tooltip:
'Si su implementación utiliza un modelo de razonamiento (o1, o1-mini, o3-mini, etc.), configure esto como "Razonamiento". De lo contrario, sus solicitudes de chat podrían fallar.',
},
},
},
@ -800,8 +802,9 @@ const TRANSLATIONS = {
pat_token_explained: "Tu token de acceso personal de Confluence.",
task_explained:
"Una vez completado, el contenido de la página estará disponible para incrustar en los espacios de trabajo en el selector de documentos.",
bypass_ssl: null,
bypass_ssl_explained: null,
bypass_ssl: "Omitir la validación del certificado SSL",
bypass_ssl_explained:
"Habilite esta opción para omitir la validación del certificado SSL para instancias de Confluence autohospedadas con certificados auto-firmados.",
},
manage: {
documents: "Documentos",
@ -904,7 +907,7 @@ const TRANSLATIONS = {
default_agent_description:
" - el agente predeterminado para este espacio de trabajo.",
custom_agents_coming_soon: "¡los agentes personalizados llegarán pronto!",
slash_reset: "/reiniciar",
slash_reset: "/reset",
preset_reset_description:
"Borra tu historial de chat y comienza un nuevo chat",
add_new_preset: " Agregar nuevo preajuste",

View File

@ -66,7 +66,7 @@ const TRANSLATIONS = {
optional: "Valikuline",
yes: "Jah",
no: "Ei",
search: null,
search: "otsing",
username_requirements:
"Kasutajanimi peab olema 232 tähemärki, algama väiketähega ning sisaldama ainult väiketähti, numbreid, alakriipse, sidekriipse ja punkte.",
},
@ -101,7 +101,7 @@ const TRANSLATIONS = {
"experimental-features": "Eksperimentaalsed funktsioonid",
contact: "Tugi",
"browser-extension": "Brauserilaiend",
"mobile-app": null,
"mobile-app": "AnythingLLM mobiilversioon",
},
login: {
"multi-user": {
@ -305,8 +305,9 @@ const TRANSLATIONS = {
query: "päringu",
"desc-end":
"režiimis, võib määrata kohandatud vastuse, kui konteksti ei leita.",
"tooltip-title": null,
"tooltip-description": null,
"tooltip-title": "Miks ma seda näen?",
"tooltip-description":
"Olete küsimise režiimis, mis kasutab ainult teie dokumentidest saadavat teavet. Valige vestlemise režiim, et pidada paindlikumaid vestlusi, või klõpsake siin, et külastada meie dokumentatsiooni ja saada lisateavet vestlemise režiimide kohta.",
},
temperature: {
title: "LLM-i temperatuur",
@ -501,8 +502,9 @@ const TRANSLATIONS = {
link: "Link",
},
"render-html": {
title: null,
description: null,
title: "Renderi HTML-koodi veebisaidil",
description:
"HTML-vastuste kuvamine abivasside vastustes.\nSee võib viia suurema vastuste kvaliteedi, kuid võib ka põhjustada potentsiaalseid turvaohusid.",
},
},
},
@ -532,7 +534,8 @@ const TRANSLATIONS = {
model_type: "Mudeli tüüp",
default: "Vaikimisi",
reasoning: "Põhjendus",
model_type_tooltip: null,
model_type_tooltip:
'Kui teie rakendus kasutab loogika mudelit (o1, o1-mini, o3-mini jne), siis määrake see väärtuseks "Loogika". Muu korral võivad teie vestlussõnumid ebaõiglas.',
},
},
},
@ -749,8 +752,9 @@ const TRANSLATIONS = {
pat_token_explained: "Sinu isiklik juurdepääsuvõti.",
task_explained:
"Kui valmis, on lehe sisu dokumentide valijas tööruumidesse põimimiseks saadaval.",
bypass_ssl: null,
bypass_ssl_explained: null,
bypass_ssl: "SSL-sertifikaadi valideerimise ümber",
bypass_ssl_explained:
"Selle valiku aktiveerimine võimaldab SSL sertifikaadi valideerimise ületada, kui kasutate enda hallatud Confluence instantsi, millel on enda välja antud sertifikaat.",
},
manage: {
documents: "Dokumendid",

File diff suppressed because it is too large Load Diff

View File

@ -102,7 +102,7 @@ const TRANSLATIONS = {
interface: "Interface",
branding: "Personnalisation",
chat: "Chat",
"mobile-app": null,
"mobile-app": "AnythingLLM Mobile",
},
login: {
"multi-user": {
@ -369,7 +369,8 @@ const TRANSLATIONS = {
model_type: "Type de modèle",
default: "Par défaut",
reasoning: "Raisonnement",
model_type_tooltip: null,
model_type_tooltip:
"Si votre déploiement utilise un modèle de raisonnement (o1, o1-mini, o3-mini, etc.), veuillez définir cette option sur « Raisonnement ». Sinon, vos requêtes de conversation pourraient échouer.",
},
},
},
@ -700,11 +701,10 @@ const TRANSLATIONS = {
cancel: "Annuler",
edit_prompt: "Modifier le prompt",
edit_response: "Modifier la réponse",
at_agent:
"Sélectionnez une compétence d'agent, un flux d'agent ou un serveur MCP",
at_agent: "@agent",
default_agent_description: "l'agent par défaut de cet espace de travail",
custom_agents_coming_soon: "Agents personnalisés bientôt disponibles",
slash_reset: "Effacer l'historique du chat",
slash_reset: "/reset",
preset_reset_description:
"Efface l'historique du chat actuel et commence une nouvelle conversation.",
add_new_preset: "Ajouter une nouvelle commande preset",

View File

@ -100,7 +100,7 @@ const TRANSLATIONS = {
"experimental-features": "תכונות ניסיוניות",
contact: "צור קשר עם התמיכה",
"browser-extension": "תוסף דפדפן",
"mobile-app": null,
"mobile-app": "AnythingLLM Mobile",
},
login: {
"multi-user": {
@ -508,8 +508,9 @@ const TRANSLATIONS = {
link: "קישור",
},
"render-html": {
title: null,
description: null,
title: "הצגת קוד HTML בשיחת צ'אט",
description:
"הצגת תגובות HTML בתגובות של עוזר.\nזה יכול להוביל לאיכות תגובה גבוהה בהרבה, אך גם עלול לגרום לסיכונים פוטנציאליים של אבטחה.",
},
},
},
@ -539,7 +540,8 @@ const TRANSLATIONS = {
model_type: "סוג מודל",
default: "ברירת מחדל",
reasoning: "היגיון",
model_type_tooltip: null,
model_type_tooltip:
'אם השימוש שלך כולל מודל הסקה (o1, o1-mini, o3-mini וכו\'), הגדר זאת ל"הסקה". אחרת, בקשות השיחה שלך עלולות להיכשל.',
},
},
},
@ -757,8 +759,9 @@ const TRANSLATIONS = {
pat_token_explained: "אסימון הגישה האישי שלך ב-Confluence.",
task_explained:
"לאחר השלמה, תוכן העמוד יהיה זמין להטמעה בסביבות עבודה בבורר המסמכים.",
bypass_ssl: null,
bypass_ssl_explained: null,
bypass_ssl: "התעלמות מאימות תעודת SSL",
bypass_ssl_explained:
"אפשר להפעיל את האפשרות זו כדי לעקוף את אימות תעודת ה-SSL עבור מופעי Confluence המאוחסנים באופן עצמאי עם תעודה שחתמה באופן עצמי.",
},
manage: {
documents: "מסמכים",
@ -855,10 +858,10 @@ const TRANSLATIONS = {
cancel: "בטל",
edit_prompt: "ערוך הנחיה",
edit_response: "ערוך תגובה",
at_agent: "@סוכן",
at_agent: "@agent",
default_agent_description: " - סוכן ברירת המחדל עבור סביבת עבודה זו.",
custom_agents_coming_soon: "סוכנים מותאמים אישית יגיעו בקרוב!",
slash_reset: "/איפוס",
slash_reset: "/reset",
preset_reset_description: "נקה את היסטוריית הצ'אט שלך והתחל צ'אט חדש",
add_new_preset: " הוסף הגדרה קבועה חדשה",
command: "פקודה",

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -66,7 +66,7 @@ const TRANSLATIONS = {
optional: "선택 사항",
yes: "예",
no: "아니오",
search: null,
search: "검색",
username_requirements:
"사용자 이름은 2-32자여야 하고, 소문자로 시작해야 하며, 소문자, 숫자, 밑줄, 하이픈, 마침표만 포함할 수 있습니다.",
},
@ -101,7 +101,7 @@ const TRANSLATIONS = {
interface: "UI 환경 설정",
branding: "브랜딩 및 화이트라벨링",
chat: "채팅",
"mobile-app": null,
"mobile-app": "AnythingLLM 모바일",
},
login: {
"multi-user": {
@ -511,8 +511,9 @@ const TRANSLATIONS = {
link: "링크",
},
"render-html": {
title: null,
description: null,
title: "채팅에서 HTML 렌더링",
description:
"어시스턴트 응답에 HTML 응답을 표시합니다.\n이는 응답 품질의 훨씬 더 높은 수준을 달성할 수 있지만, 잠재적인 보안 위험으로 이어질 수도 있습니다.",
},
},
},
@ -542,7 +543,8 @@ const TRANSLATIONS = {
model_type: "모델 유형",
default: "기본값",
reasoning: "추론",
model_type_tooltip: null,
model_type_tooltip:
'만약 귀하의 배포가 추론 모델(o1, o1-mini, o3-mini 등)을 사용한다면, 이 옵션을 "추론"으로 설정하십시오. 그렇지 않으면, 챗봇 요청이 실패할 수 있습니다.',
},
},
},
@ -661,7 +663,7 @@ const TRANSLATIONS = {
token: "GitHub 액세스 토큰",
optional: "선택 사항",
token_explained: "요청 제한을 방지하기 위한 액세스 토큰입니다.",
token_explained_start: "",
token_explained_start: "무엇보다 중요한 것은,",
token_explained_link1: "개인 액세스 토큰",
token_explained_middle:
"이 없으면 GitHub API의 요청 제한으로 인해 가져올 수 있는 파일 수가 제한될 수 있습니다. ",
@ -690,7 +692,7 @@ const TRANSLATIONS = {
optional: "선택 사항",
token_explained: "요청 제한을 방지하기 위한 액세스 토큰입니다.",
token_description: "GitLab API에서 추가로 가져올 엔터티를 선택하세요.",
token_explained_start: "",
token_explained_start: "무엇보다 중요한 것은,",
token_explained_link1: "개인 액세스 토큰",
token_explained_middle:
"이 없으면 GitLab API의 요청 제한으로 인해 가져올 수 있는 파일 수가 제한될 수 있습니다. ",
@ -765,8 +767,9 @@ const TRANSLATIONS = {
pat_token_explained: "Confluence 계정의 개인 액세스 토큰입니다.",
task_explained:
"가져오기가 완료되면 페이지 내용이 문서 선택기에서 워크스페이스에 임베딩할 수 있도록 제공됩니다.",
bypass_ssl: null,
bypass_ssl_explained: null,
bypass_ssl: "SSL 인증서 유효성 검사 우회",
bypass_ssl_explained:
"자체 서명된 인증서를 사용하는 자체 호스팅 Confluence 인스턴스에 대해 SSL 인증서 유효성 검사를 우회하기 위해 이 옵션을 활성화합니다.",
},
manage: {
documents: "문서 관리",

View File

@ -67,7 +67,7 @@ const TRANSLATIONS = {
optional: "Neobligāti",
yes: "Jā",
no: "Nē",
search: null,
search: "Meklēšana",
username_requirements:
"Lietotājvārdam jābūt 232 rakstzīmju garam, jāsākas ar mazo burtu un jāsatur tikai mazie burti, cipari, apakšsvītras, domuzīmes un punkti.",
},
@ -102,7 +102,7 @@ const TRANSLATIONS = {
"experimental-features": "Eksperimentālās funkcijas",
contact: "Sazināties ar atbalstu",
"browser-extension": "Pārlūka paplašinājums",
"mobile-app": null,
"mobile-app": "AnythingLLM mobilā versija",
},
login: {
"multi-user": {
@ -205,7 +205,7 @@ const TRANSLATIONS = {
docs: "Dokumentācija",
star: "Zvaigzne GitHub",
},
keyboardShortcuts: null,
keyboardShortcuts: "Taustiņu atvieglojumi",
},
},
"new-workspace": {
@ -303,7 +303,7 @@ const TRANSLATIONS = {
clearAllConfirm:
"Vai tiešām vēlaties nodzēst visu vēsturi? Šo darbību nevar atsaukt.",
expand: "Paplašināt",
publish: null,
publish: "Publicē savu saturu Community Hub.",
},
},
refusal: {
@ -312,8 +312,9 @@ const TRANSLATIONS = {
query: "vaicājuma",
"desc-end":
"režīmā, jūs varētu vēlēties atgriezt pielāgotu atteikuma atbildi, kad konteksts nav atrasts.",
"tooltip-title": null,
"tooltip-description": null,
"tooltip-title": "Kāpēc es to redzu?",
"tooltip-description":
"Jūs atrodaties meklēšanas režīmā, kas izmanto tikai informāciju no jūsu dokumentiem. Izmantojiet runas režīmu, lai nodrošinātu elastīgākas sarunas, vai noklikšķiniet šeit, lai apmeklētu mūsu dokumentāciju un iegūtu vairāk informācijas par runas režīmiem.",
},
temperature: {
title: "LLM Temperatūra",
@ -519,8 +520,9 @@ const TRANSLATIONS = {
link: "Saite",
},
"render-html": {
title: null,
description: null,
title: "Izveidot HTML saturu, ko var izmantot čatā.",
description:
"Ievietojiet HTML atbildes palīdzības atbildēs.\nTas var novērst daudz augstāku atbildes kvalitātes līmeni, taču arī var radīt potenciālas drošības riskus.",
},
},
},
@ -543,14 +545,16 @@ const TRANSLATIONS = {
provider: "LLM pakalpojuma sniedzējs",
providers: {
azure_openai: {
azure_service_endpoint: null,
api_key: null,
chat_deployment_name: null,
chat_model_token_limit: null,
model_type: null,
default: null,
reasoning: null,
model_type_tooltip: null,
azure_service_endpoint: "Azure pakalpojuma gala punkts",
api_key: "API atslēņa",
chat_deployment_name: "Izvietošanas nosaukums",
chat_model_token_limit:
'Žurnāla "The Guardian" raksts "How to build a sustainable city" ("Kā izveidot ilgtspējīgu pilsētu")\n\n\nŽurnāla "The Guardian" raksts "How to build a sustainable city" ("Kā izveidot ilgtspējīgu pilsētu")',
model_type: "Modeļa veids",
default: "Standarta",
reasoning: "Pamatojums",
model_type_tooltip:
'Ja jūsu lietojums izmanto loģiskā modelī (o1, o1-mini, o3-mini utt.), norādiet, ka tas ir "Loģisks". Citi gadījumā jūsu sarunu pieprasījumi var neizpildīties.',
},
},
},
@ -612,7 +616,7 @@ const TRANSLATIONS = {
workspace: "Darba vieta",
chats: "Nosūtītie čati",
active: "Aktīvie domēni",
created: null,
created: "Izveidotais",
},
},
"embed-chats": {
@ -779,8 +783,9 @@ const TRANSLATIONS = {
pat_token_explained: "Jūsu Confluence personiskais piekļuves tokens.",
task_explained:
"Kad tas būs pabeigts, lapas saturs būs pieejams iegulšanai darba vietās dokumentu atlasītājā.",
bypass_ssl: null,
bypass_ssl_explained: null,
bypass_ssl: "Aizvest SSL sertifikāta validācijas",
bypass_ssl_explained:
"Aktivizējiet šo opciju, lai pārliecinajas no SSL sertifikāta validācijas, izmantojot pašizveidotā sertifikātu, konfluensā, kas ir pašizveidots.",
},
manage: {
documents: "Dokumenti",
@ -863,46 +868,52 @@ const TRANSLATIONS = {
text_size: "Mainīt teksta izmēru.",
microphone: "Izrunājiet savu uzvedni.",
send: "Nosūtīt uzvednes ziņojumu uz darba vietu",
attachments_processing: null,
tts_speak_message: null,
copy: null,
regenerate: null,
regenerate_response: null,
good_response: null,
more_actions: null,
hide_citations: null,
show_citations: null,
pause_tts_speech_message: null,
fork: null,
delete: null,
save_submit: null,
cancel: null,
edit_prompt: null,
edit_response: null,
at_agent: null,
default_agent_description: null,
custom_agents_coming_soon: null,
slash_reset: null,
preset_reset_description: null,
add_new_preset: null,
command: null,
your_command: null,
placeholder_prompt: null,
description: null,
placeholder_description: null,
save: null,
small: null,
normal: null,
large: null,
attachments_processing: "Faili tiek apstrādāti. Lūdzu, paceliet.",
tts_speak_message: "TTS run message",
copy: "Kopēt",
regenerate: "Atjaunot",
regenerate_response: "Atjaunot atbildi",
good_response: "Laba atbilde",
more_actions: "Vairāk darbību",
hide_citations: "Izvākt atsaukmes",
show_citations: "Rādīt atsauces",
pause_tts_speech_message: "Pārtrauciet tekstā iekļauto balss tulkošanu.",
fork: "Klūtis",
delete: "Dzēst",
save_submit: "Saglabāt un iesūt",
cancel: "Atcelt",
edit_prompt: "Ieslēgt",
edit_response: "Rediģēt atbildi",
at_agent: "@agent",
default_agent_description: "- noklusējuma aģents šim darba telpai.",
custom_agents_coming_soon:
"Nedaudz drīzumā būs pieejami individuāli pakalpojumi!",
slash_reset: "/reset",
preset_reset_description:
"Izdzēsiet savu pastā veidoتو sarunu vēsturi un sāciet jaunu sarunu.",
add_new_preset: "Pievienot jaunu iepriekšējo",
command: "Ordere",
your_command: "Jūsu komanda",
placeholder_prompt:
"Šis ir saturs, kas tiks ievietots pirms jūsu pieprasījuma.",
description: "Apraksts",
placeholder_description: "Atbild ar dzeju par lielajiem valodu modeļiem.",
save: "Saglabāt",
small: "Mazs.",
normal: "Normāls",
large: "Liels",
workspace_llm_manager: {
search: null,
loading_workspace_settings: null,
available_models: null,
available_models_description: null,
save: null,
saving: null,
missing_credentials: null,
missing_credentials_description: null,
search: "Izmeklē LLM sniedzējus",
loading_workspace_settings: "Ielāde darba vidējās iestatījumi...",
available_models: "Pieejamās modeļi: {{provider}}",
available_models_description:
"Izvēlieties modeli, ko izmantot šim darba zonai.",
save: "Izmantojiet šo modeli.",
saving: "Iestata modeli kā noklusēto darba vietai...",
missing_credentials:
"Šim pakalpojuma sniedzējam nav sniegta nekur dokumentēta informācija.",
missing_credentials_description:
"Noklikšķiniet, lai konfigurētu autentifikācijas datus",
},
},
profile_settings: {
@ -916,109 +927,127 @@ const TRANSLATIONS = {
update_account: "Atjaunināt kontu",
theme: "Tēmas preference",
language: "Vēlamā valoda",
failed_upload: null,
upload_success: null,
failed_remove: null,
profile_updated: null,
failed_update_user: null,
account: null,
support: null,
signout: null,
failed_upload: "Neizdevās augsēt profilas attēlu: {{error}}",
upload_success: "Profila attēls ir augšupielādēts.",
failed_remove: "Neizdevās noņemt profilbildi: {{error}}",
profile_updated: "Profils atjaunināts.",
failed_update_user: "Neizdevās atjaunināt lietotāju: {{error}}",
account: "Konta",
support: "Atbalsts",
signout: "Iziet",
},
"keyboard-shortcuts": {
title: null,
title: "Taustiņu atvieglojumi",
shortcuts: {
settings: null,
workspaceSettings: null,
home: null,
workspaces: null,
apiKeys: null,
llmPreferences: null,
chatSettings: null,
help: null,
showLLMSelector: null,
settings: "Atvērt iestatījumus",
workspaceSettings: "Atvērt pašreizējās darba vides iestatījumus",
home: "Pārvietojieties uz sākuma lapu",
workspaces: "Administrējiet darba vietas",
apiKeys: "API atslēgas iestatījumi",
llmPreferences: "LLM prioritātes",
chatSettings: "Pieskaites iestatījumi",
help: "Rādīt tastatūras atvērto palīdzības",
showLLMSelector: "LLM izvēles rīks",
},
},
community_hub: {
publish: {
system_prompt: {
success_title: null,
success_description: null,
success_thank_you: null,
view_on_hub: null,
modal_title: null,
name_label: null,
name_description: null,
name_placeholder: null,
description_label: null,
description_description: null,
tags_label: null,
tags_description: null,
tags_placeholder: null,
visibility_label: null,
public_description: null,
private_description: null,
publish_button: null,
submitting: null,
submit: null,
prompt_label: null,
prompt_description: null,
prompt_placeholder: null,
success_title: "Veiksmi!",
success_description:
'Jūsu sistēmas iniciatīva ir publicēta "Community Hub" platformā!',
success_thank_you: "Paldies par dalīšanos ar komunitāti!",
view_on_hub: "Skatīt Community Hub",
modal_title: "Publicēšanas sistēmas iniciatīva",
name_label: "Jānis",
name_description: "Šis ir jūsu sistēmas komandas nosaukums.",
name_placeholder: "Mana sistēmas iniciatīva",
description_label: "Apraksts",
description_description:
"Šis ir jūsu sistēmas iniciatīvas apraksts. Izmantojiet to, lai aprakstītu jūsu sistēmas iniciatīvas mērķi.",
tags_label: "Atzīmes",
tags_description:
"Atzīmes tiek izmantotas, lai atzīmētu jūsu sistēmas iniciatīvu, lai to vieglāk atrastu. Jūs varat pievienot vairākas atzīmes. Maks 5 atzīmes. Katrai atzīmei maksimāli 20 raksti.",
tags_placeholder:
'Ievietojiet tekstu un nospiediet "Enter", lai pievienotu atzīmes',
visibility_label: "Redzamība",
public_description: "Vispārējās sistēmas aicinājumi ir redzami visiem.",
private_description:
"Privātā sistēmas paziņojumi ir redzami tikai jums.",
publish_button: "Publicē savu saturu Community Hub.",
submitting: "Izdevniecība...",
submit: "Publicē savu saturu Community Hub.",
prompt_label: "Ieslēgt",
prompt_description:
"Šis ir tiešais sistēmas prompts, kas tiks izmantots, lai vadītu LLM.",
prompt_placeholder: "Ievietojiet savu sistēmas komandu šeit...",
},
agent_flow: {
public_description: null,
private_description: null,
success_title: null,
success_description: null,
success_thank_you: null,
view_on_hub: null,
modal_title: null,
name_label: null,
name_description: null,
name_placeholder: null,
description_label: null,
description_description: null,
tags_label: null,
tags_description: null,
tags_placeholder: null,
visibility_label: null,
publish_button: null,
submitting: null,
submit: null,
privacy_note: null,
public_description: "Visiem redzamas sabiedrības aģentu darbības.",
private_description: "Privātās aģenta darbības ir redzamas tikai jums.",
success_title: "Veiksmi!",
success_description:
'Jūsu "Agent Flow" ir publicēts "Community Hub" platformā!',
success_thank_you: "Paldies par dalīšanos ar kopienu!",
view_on_hub: "Skatīt Community Hub",
modal_title: "Publicēšanas aģenta darbības",
name_label: "Jānis",
name_description: "Šis ir jūsu aģenta darbības norises nosaukums.",
name_placeholder: "Mana aģenta darbība",
description_label: "Apraksts",
description_description:
"Šis ir jūsu aģenta darbības apraksts. Izmantojiet to, lai aprakstītu jūsu aģenta darbības mērķi.",
tags_label: "Atzīmes",
tags_description:
"Atzīmes tiek izmantotas, lai atzīmētu jūsu aģenta darbplūsmu, lai to būtu vieglāk atrast. Jūs varat pievienot vairākas atzīmes. Maks 5 atzīmes. Katrai atzīmei maksimāli 20 raksti.",
tags_placeholder:
'Ievietojiet tekstu un nospiediet "Enter", lai pievienotu atzīmes',
visibility_label: "Redzamība",
publish_button: "Publicē savu saturu Community Hub.",
submitting: "Izdevniecība...",
submit: "Publicē savu saturu Community Hub.",
privacy_note:
'Dati tiek augšupielādēti kā privāti, lai aizsargātu jebkādus citus datus. Pēc publicēšanas varat mainīt redzamības iestatījumus "Sabiedrības centrā". Lūdzu, pārliecinieties, ka jūsu dati nesatur nevienu citu vai privātu informāciju, pirms publicēšanas.',
},
generic: {
unauthenticated: {
title: null,
description: null,
button: null,
title: "Nepieciešama autentifikācija",
description:
'Pirms satura publicēšanas ir jāiespējo autentifikācija "AnythingLLM" sabiedrības centrā.',
button: "Pievienojieties sabiedrības centram",
},
},
slash_command: {
success_title: null,
success_description: null,
success_thank_you: null,
view_on_hub: null,
modal_title: null,
name_label: null,
name_description: null,
name_placeholder: null,
description_label: null,
description_description: null,
command_label: null,
command_description: null,
command_placeholder: null,
tags_label: null,
tags_description: null,
tags_placeholder: null,
visibility_label: null,
public_description: null,
private_description: null,
publish_button: null,
submitting: null,
prompt_label: null,
prompt_description: null,
prompt_placeholder: null,
success_title: "Veiksmi!",
success_description:
'Jūsu "Slash Command" ir publicēts "Community Hub"!',
success_thank_you: "Paldies par dalīšanos ar kopienu!",
view_on_hub: "Skatīt Community Hub",
modal_title: "Publicējiet Slash komandu",
name_label: "Jānis",
name_description: "Šis ir jūsu komandas nosaukums.",
name_placeholder: "Mana Slash komanda",
description_label: "Apraksts",
description_description:
"Šis ir jūsu komandas apraksts. Izmantojiet to, lai aprakstītu jūsu komandas mērķi.",
command_label: "Ordere",
command_description:
"Šis ir komandu, ko lietotāji ievadīs, lai aktivizētu šo iepriekš noteikto.",
command_placeholder: "manas komanda",
tags_label: "Atzīmes",
tags_description:
"Atzīmes tiek izmantotas, lai atzīmētu jūsu komandu, kas ļauj vieglāk meklēt. Jūs varat pievienot vairākas atzīmes. Maks 5 atzīmes. Katrai atzīmei maksimāli 20 raksti.",
tags_placeholder:
"Ierakstiet un nospiediet Enter, lai pievienotu atzīmes",
visibility_label: "Redzamība",
public_description: "Vispārīgie komandas vārdi ir redzami visiem.",
private_description: "Vietiski komandu komandās var redzēt tikai jūs.",
publish_button: "Publicē savu saturu Community Hub.",
submitting: "Izdevniecība...",
prompt_label: "Ieslēgt",
prompt_description:
"Šis ir komandu, kas tiks izmantots, kad tiks aktivizēta slashes komanda.",
prompt_placeholder: "Ievietojiet savu pieprasījumu šeit...",
},
},
},

View File

@ -68,7 +68,7 @@ const TRANSLATIONS = {
optional: "Opcjonalnie",
yes: "Tak",
no: "Nie",
search: null,
search: "Wyszukaj",
username_requirements:
"Nazwa użytkownika musi mieć od 2 do 32 znaków, zaczynać się małą literą i zawierać tylko małe litery, cyfry, podkreślenia, myślniki i kropki.",
},
@ -103,7 +103,7 @@ const TRANSLATIONS = {
"experimental-features": "Funkcje eksperymentalne",
contact: "Kontakt z pomocą techniczną",
"browser-extension": "Rozszerzenie przeglądarki",
"mobile-app": null,
"mobile-app": "AnythingLLM Mobile",
},
login: {
"multi-user": {
@ -497,7 +497,7 @@ const TRANSLATIONS = {
new: "Nowa wiadomość",
system: "systemu",
user: "użytkownika",
message: "",
message: "wiadomość",
assistant: "Asystent czatu AnythingLLM",
"double-click": "Kliknij dwukrotnie, aby edytować...",
save: "Zapisz wiadomości",
@ -524,8 +524,9 @@ const TRANSLATIONS = {
link: "Link",
},
"render-html": {
title: null,
description: null,
title: "Renderowanie HTML w czacie",
description:
"Wyświetlanie odpowiedzi w formacie HTML w odpowiedziach asystenta.\nMoże to prowadzić do znacznie wyższej jakości odpowiedzi, ale również wiąże się z potencjalnymi zagrożeniami bezpieczeństwa.",
},
},
},
@ -555,7 +556,8 @@ const TRANSLATIONS = {
model_type: "Typ modelu",
default: "Domyślne",
reasoning: "Uzasadnienie",
model_type_tooltip: null,
model_type_tooltip:
"Jeśli w Państwa systemie używany jest model rozumowania (np. o1, o1-mini, o3-mini), ustaw tę opcję na „Rozumowanie”. W przeciwnym razie, Państwa zapytania w czacie mogą nie działać.",
},
},
},
@ -784,8 +786,9 @@ const TRANSLATIONS = {
pat_token_explained: "Osobisty token dostępu do Confluence.",
task_explained:
"Po zakończeniu zawartość strony będzie dostępna do osadzenia w obszarach roboczych w selektorze dokumentów.",
bypass_ssl: null,
bypass_ssl_explained: null,
bypass_ssl: "Omijanie weryfikacji certyfikatu SSL",
bypass_ssl_explained:
"Włącz tę opcję, aby ominąć weryfikację certyfikatu SSL dla instancji Confluence, które są samodzielnie hostowane i posiadają certyfikat samodzielnie podpisany.",
},
manage: {
documents: "Dokumenty",
@ -917,7 +920,7 @@ const TRANSLATIONS = {
remove_profile_picture: "Usuń zdjęcie profilowe",
username: "Nazwa użytkownika",
new_password: "Nowe hasło",
password_description: null,
password_description: "Hasz do 8 znaków.",
cancel: "Anuluj",
update_account: "Zaktualizuj konto",
theme: "Preferencje dotyczące motywu",

View File

@ -101,7 +101,7 @@ const TRANSLATIONS = {
"experimental-features": "Recursos Experimentais",
contact: "Suporte",
"browser-extension": "Extensão de Navegador",
"mobile-app": null,
"mobile-app": "AnythingLLM Mobile",
},
login: {
"multi-user": {
@ -510,8 +510,9 @@ const TRANSLATIONS = {
link: "Link",
},
"render-html": {
title: null,
description: null,
title: "Renderizar HTML no chat",
description:
"Renderizar respostas HTML nas respostas do assistente.\nIsso pode resultar em uma qualidade de resposta muito maior, mas também pode levar a riscos potenciais de segurança.",
},
},
},
@ -540,7 +541,8 @@ const TRANSLATIONS = {
model_type: "Tipo do Modelo",
default: "Padrão",
reasoning: "Raciocínio",
model_type_tooltip: null,
model_type_tooltip:
'Se o seu ambiente de uso utiliza um modelo de raciocínio (o1, o1-mini, o3-mini, etc.), defina esta opção como "Raciocínio". Caso contrário, suas solicitações de chat podem falhar.',
},
},
},
@ -763,8 +765,9 @@ const TRANSLATIONS = {
pat_token_explained: "Seu token pessoal de acesso.",
task_explained:
"Após conclusão, o conteúdo da página estará disponível para vínculo.",
bypass_ssl: null,
bypass_ssl_explained: null,
bypass_ssl: "Desviar a validação do certificado SSL",
bypass_ssl_explained:
"Habilite esta opção para contornar a validação do certificado SSL para instâncias do Confluence hospedadas por si mesmo, com certificado autoassinado.",
},
manage: {
documents: "Documentos",
@ -861,7 +864,7 @@ const TRANSLATIONS = {
cancel: "Cancelar",
edit_prompt: "Editar prompt",
edit_response: "Editar resposta",
at_agent: "@agente",
at_agent: "@agent",
default_agent_description: " - o agente padrão deste workspace.",
custom_agents_coming_soon: "mais agentes personalizados em breve!",
slash_reset: "/reset",

View File

@ -103,7 +103,7 @@ const TRANSLATIONS = {
"experimental-features": "Funcții experimentale",
contact: "Contact suport",
"browser-extension": "Extensie browser",
"mobile-app": null,
"mobile-app": "AnythingLLM Mobile",
},
login: {
"multi-user": {
@ -518,8 +518,9 @@ const TRANSLATIONS = {
pat_token_explained: "Token-ul tău personal de acces Confluence.",
task_explained:
"Odată complet, conținutul paginii va fi disponibil pentru embedding în spații de lucru în selectorul de documente.",
bypass_ssl: null,
bypass_ssl_explained: null,
bypass_ssl: "Ocolirea validării certificatului SSL",
bypass_ssl_explained:
"Activați această opțiune pentru a ocoli validarea certificatului SSL pentru instanțele Confluence găzduite de utilizator, cu un certificat semnat de utilizator.",
},
manage: {
documents: "Documente",
@ -694,7 +695,7 @@ const TRANSLATIONS = {
name_label: "Nume",
name_description:
"Acesta este numele afișat al System Prompt-ului tău.",
name_placeholder: "",
name_placeholder: "Asistentul meu",
description_label: "Descriere",
description_description: "Descrie scopul System Prompt-ului tău.",
tags_label: "Etichete",
@ -976,8 +977,9 @@ const TRANSLATIONS = {
link: "Link",
},
"render-html": {
title: null,
description: null,
title: "Redarea HTML în chat",
description:
"Afișarea răspunsurilor HTML în răspunsurile asistentului.\nAcest lucru poate duce la o calitate a răspunsurilor mult mai bună, dar poate și la riscuri potențiale de securitate.",
},
},
},
@ -1007,7 +1009,8 @@ const TRANSLATIONS = {
model_type: "Tip model",
default: "Implicit",
reasoning: "Raționament",
model_type_tooltip: null,
model_type_tooltip:
"Dacă implementarea dvs. utilizează un model de raționament (o1, o1-mini, o3-mini, etc.), setați această opțiune la „Raționament”. În caz contrar, cererile dvs. de chat pot eșua.",
},
},
},

View File

@ -67,7 +67,7 @@ const TRANSLATIONS = {
optional: "Необязательный",
yes: "Да",
no: "Нет",
search: null,
search: "Поиск",
username_requirements:
"Имя пользователя должно содержать от 2 до 32 символов, начинаться со строчной буквы и содержать только строчные буквы, цифры, символы подчёркивания, дефисы и точки.",
},
@ -99,10 +99,10 @@ const TRANSLATIONS = {
contact: "Связаться с Поддержкой",
"browser-extension": "Расширение браузера",
"system-prompt-variables": "Переменные системного запроса",
interface: null,
branding: null,
chat: null,
"mobile-app": null,
interface: "Предпочтения в пользовательском интерфейсе",
branding: "Брендинг и создание продуктов с собственной меткой.",
chat: "Чат",
"mobile-app": "AnythingLLM Mobile",
},
login: {
"multi-user": {
@ -212,15 +212,16 @@ const TRANSLATIONS = {
description:
"Подсказка, которая будет использоваться в этом рабочем пространстве. Определите контекст и инструкции для AI для создания ответа. Вы должны предоставить тщательно разработанную подсказку, чтобы AI мог генерировать релевантный и точный ответ.",
history: {
title: null,
clearAll: null,
noHistory: null,
restore: null,
delete: null,
deleteConfirm: null,
clearAllConfirm: null,
expand: null,
publish: null,
title: "История запросов системы",
clearAll: "Очистить всё",
noHistory: "Информация о предыдущих запросах недоступна.",
restore: "Восстановить",
delete: "Удалить",
deleteConfirm: "Вы уверены, что хотите удалить этот элемент истории?",
clearAllConfirm:
"Вы уверены, что хотите очистить всю историю? Это действие нельзя отменить.",
expand: "Расширять",
publish: "Опубликовать в Центре сообщества",
},
},
refusal: {
@ -229,8 +230,9 @@ const TRANSLATIONS = {
query: "запроса",
"desc-end":
"вы можете вернуть пользовательский ответ об отказе, если контекст не найден.",
"tooltip-title": null,
"tooltip-description": null,
"tooltip-title": "Почему я это вижу?",
"tooltip-description":
"Вы находитесь в режиме запроса, который использует только информацию из ваших документов. Переключитесь в режим чата для более гибких бесед, или нажмите здесь, чтобы посетить нашу документацию и узнать больше о режимах чата.",
},
temperature: {
title: "Температура LLM",
@ -357,14 +359,15 @@ const TRANSLATIONS = {
provider: "Поставщик LLM",
providers: {
azure_openai: {
azure_service_endpoint: null,
api_key: null,
chat_deployment_name: null,
chat_model_token_limit: null,
model_type: null,
default: null,
reasoning: null,
model_type_tooltip: null,
azure_service_endpoint: "Endpoint для сервиса Azure",
api_key: "Ключ API",
chat_deployment_name: "Название развертывания чата",
chat_model_token_limit: "Предел токенов для чата",
model_type: "Тип модели",
default: "Стандартные настройки.",
reasoning: "Обоснование",
model_type_tooltip:
'Если ваш проект использует модель рассуждения (например, o1, o1-mini, o3-mini и т.д.), установите этот параметр в значение "Reasoning". В противном случае, ваши запросы в чат могут не выполняться.',
},
},
},
@ -426,7 +429,7 @@ const TRANSLATIONS = {
workspace: "Рабочее пространство",
chats: "Отправленные чаты",
active: "Активные домены",
created: null,
created: "Создано",
},
},
"embed-chats": {
@ -579,8 +582,9 @@ const TRANSLATIONS = {
pat_token_explained: "Ваш личный токен доступа для Confluence.",
task_explained:
"После завершения содержимое страницы будет доступно для внедрения в рабочие пространства через выбор документов.",
bypass_ssl: null,
bypass_ssl_explained: null,
bypass_ssl: "Обход проверки сертификата SSL",
bypass_ssl_explained:
"Включите эту опцию, чтобы обойти проверку сертификата SSL для экземпляров Confluence, размещенных на собственном сервере, с использованием самоподписанного сертификата.",
},
manage: {
documents: "Документы",
@ -648,15 +652,18 @@ const TRANSLATIONS = {
accept: "Хорошо, понял",
},
obsidian: {
name: null,
description: null,
vault_location: null,
vault_description: null,
selected_files: null,
importing: null,
import_vault: null,
processing_time: null,
vault_warning: null,
name: "Обсидиан",
description: "Импортируйте содержимое Obsidian в один клик.",
vault_location: "Местоположение хранилища",
vault_description:
"Выберите папку вашего хранилища Obsidian, чтобы импортировать все заметки и их связи.",
selected_files: "Найдено {{count}} файлов в формате Markdown",
importing: "Импорт хранилища...",
import_vault: "Import Vault",
processing_time:
"Это может занять некоторое время, в зависимости от размера вашего хранилища.",
vault_warning:
"Чтобы избежать любых конфликтов, убедитесь, что ваша папка Obsidian не открыта в данный момент.",
},
},
chat_window: {
@ -673,46 +680,55 @@ const TRANSLATIONS = {
text_size: "Изменить размер текста.",
microphone: "Произнесите ваш запрос.",
send: "Отправить запрос в рабочее пространство",
attachments_processing: null,
tts_speak_message: null,
copy: null,
regenerate: null,
regenerate_response: null,
good_response: null,
more_actions: null,
hide_citations: null,
show_citations: null,
pause_tts_speech_message: null,
fork: null,
delete: null,
save_submit: null,
cancel: null,
edit_prompt: null,
edit_response: null,
at_agent: null,
default_agent_description: null,
custom_agents_coming_soon: null,
slash_reset: null,
preset_reset_description: null,
add_new_preset: null,
command: null,
your_command: null,
placeholder_prompt: null,
description: null,
placeholder_description: null,
save: null,
small: null,
normal: null,
large: null,
attachments_processing: "Обработка вложений. Пожалуйста, подождите...",
tts_speak_message: "Сообщение TTS Speak",
copy: "Копировать",
regenerate: "Восстановить",
regenerate_response: "Перефразировать ответ",
good_response: "Хороший ответ",
more_actions: "Больше действий",
hide_citations: "Скрыть ссылки на источники",
show_citations: "Отображение ссылок",
pause_tts_speech_message:
"Приостановить чтение текста сообщения с помощью синтеза речи.",
fork: "Вилка",
delete: "Удалить",
save_submit: "Сохранить и отправить",
cancel: "Отменить",
edit_prompt:
"Пожалуйста, предоставьте текст, который необходимо отредактировать.",
edit_response: "Отредактируйте ответ",
at_agent: "@agent",
default_agent_description:
"- это основной агент для данного рабочего пространства.",
custom_agents_coming_soon: "Скоро появятся индивидуальные агенты!",
slash_reset: "/reset",
preset_reset_description: "Очистите историю чата и начните новый чат",
add_new_preset: "Добавить новый шаблон",
command: "Команда",
your_command: "Ваш приказ",
placeholder_prompt:
"Это контент, который будет отображаться перед вашим запросом.",
description: "Описание",
placeholder_description:
"Отвечает стихотворением о больших языковых моделях.",
save: "Сохранить",
small: "Маленький",
normal: "Нормальный",
large: "Большой",
workspace_llm_manager: {
search: null,
loading_workspace_settings: null,
available_models: null,
available_models_description: null,
save: null,
saving: null,
missing_credentials: null,
missing_credentials_description: null,
search: "Поиск поставщиков больших языковых моделей",
loading_workspace_settings: "Загрузка настроек рабочего пространства...",
available_models: "Доступные модели для {{provider}}",
available_models_description:
"Выберите модель, которую вы хотите использовать для этой рабочей среды.",
save: "Используйте эту модель.",
saving:
"Установка модели в качестве значения по умолчанию для рабочего пространства...",
missing_credentials:
"Этот поставщик не предоставляет никаких подтверждающих документов.",
missing_credentials_description:
"Нажмите, чтобы настроить учетные данные",
},
},
profile_settings: {
@ -726,283 +742,325 @@ const TRANSLATIONS = {
update_account: "Обновить учётную запись",
theme: "Предпочтения темы",
language: "Предпочитаемый язык",
failed_upload: null,
upload_success: null,
failed_remove: null,
profile_updated: null,
failed_update_user: null,
account: null,
support: null,
signout: null,
failed_upload: "Не удалось загрузить фотографию профиля: {{ошибка}}",
upload_success: "Фотография профиля загружена.",
failed_remove: "Не удалось удалить фотографию профиля: {{error}}",
profile_updated: "Профиль обновлен.",
failed_update_user: "Не удалось обновить данные пользователя: {{error}}",
account: "Счёт",
support: "Поддержка",
signout: "Выйти",
},
customization: {
interface: {
title: null,
description: null,
title: "Предпочтения в пользовательском интерфейсе",
description:
"Настройте свои предпочтения пользовательского интерфейса для AnythingLLM.",
},
branding: {
title: null,
description: null,
title: "Брендинг и создание продуктов с собственной меткой.",
description:
"Настройте свою версию AnythingLLM с использованием собственных брендинговых элементов.",
},
chat: {
title: null,
description: null,
title: "Чат",
description: "Настройте свои предпочтения для чата с AnythingLLM.",
auto_submit: {
title: null,
description: null,
title: "Автоматическая передача голосового ввода",
description:
"Автоматически отправлять голосовой ввод после периода тишины",
},
auto_speak: {
title: null,
description: null,
title: "Автоматические ответы",
description:
"Автоматическое воспроизведение ответов, сгенерированных ИИ.",
},
spellcheck: {
title: null,
description: null,
title: "Включить проверку правописания",
description:
"Включить или отключить проверку правописания в поле ввода сообщений",
},
},
items: {
theme: {
title: null,
description: null,
title: "Тема",
description: "Выберите предпочитаемую цветовую схему для приложения.",
},
"show-scrollbar": {
title: null,
description: null,
title: "Показать полосу прокрутки",
description: "Включить или отключить полосу прокрутки в окне чата.",
},
"support-email": {
title: null,
description: null,
title: "Поддержка по электронной почте",
description:
"Укажите адрес электронной почты службы поддержки, к которому пользователи смогут обращаться за помощью.",
},
"app-name": {
title: null,
description: null,
title: "Имя:\n\nИмя:",
description:
"Укажите имя, которое будет отображаться на странице входа для всех пользователей.",
},
"chat-message-alignment": {
title: null,
description: null,
title: "Выравнивание сообщений в чате",
description:
"Выберите режим выравнивания сообщений при использовании интерфейса чата.",
},
"display-language": {
title: null,
description: null,
title: "Язык отображения",
description:
"Выберите предпочитаемый язык для отображения пользовательского интерфейса AnythingLLM когда доступны переводы.",
},
logo: {
title: null,
description: null,
add: null,
recommended: null,
remove: null,
replace: null,
title: "Логотип бренда",
description:
"Загрузите свой собственный логотип, чтобы он отображался на всех страницах.",
add: "Добавьте свой логотип",
recommended: "Рекомендуемый размер: 800 x 200",
remove: "Удалить",
replace: "Замените",
},
"welcome-messages": {
title: null,
description: null,
new: null,
system: null,
user: null,
message: null,
assistant: null,
"double-click": null,
save: null,
title: "Приветственные сообщения",
description:
"Настройте приветственные сообщения, которые отображаются вашим пользователям. Эти сообщения будут видны только не-административным пользователям.",
new: "Новый",
system: "система",
user: "Пожалуйста, предоставьте текст, который вы хотите перевести.",
message: "сообщение",
assistant: "Чат-ассистент AnythingLLM",
"double-click": "Двойной щелчок для редактирования...",
save: "Сохранить сообщения",
},
"browser-appearance": {
title: null,
description: null,
title: "Внешний вид браузера",
description:
"Настройте внешний вид вкладки и заголовка браузера при открытии приложения.",
tab: {
title: null,
description: null,
title: "Заголовок",
description:
"Установите пользовательское название вкладки при открытии приложения в браузере.",
},
favicon: {
title: null,
description: null,
title: "Favicon",
description:
"Используйте пользовательский значок для вкладки браузера.",
},
},
"sidebar-footer": {
title: null,
description: null,
icon: null,
link: null,
title: "Элементы нижней части боковой панели",
description:
"Настройте элементы, отображаемые в нижней части боковой панели.",
icon: "Иконка",
link: "Ссылка",
},
"render-html": {
title: null,
description: null,
title: "Отображение HTML в чате",
description:
"Отображение HTML-ответов в ответах помощника.\nЭто может привести к значительно более высокой степени соответствия ответа качеству, но также может привести к потенциальным проблемам с безопасностью.",
},
},
},
"main-page": {
noWorkspaceError: null,
noWorkspaceError:
"Пожалуйста, создайте рабочее пространство, прежде чем начать общение.",
checklist: {
title: null,
tasksLeft: null,
completed: null,
dismiss: null,
title: "Начало работы",
tasksLeft: "оставшиеся задачи",
completed:
"Вы находитесь на пути к тому, чтобы стать экспертом в области AnythingLLM!",
dismiss: "закрыть",
tasks: {
create_workspace: {
title: null,
description: null,
action: null,
title: "Создайте рабочее пространство.",
description:
"Создайте свое первое рабочее пространство, чтобы начать работу",
action: "Создать",
},
send_chat: {
title: null,
description: null,
action: null,
title: "Отправить сообщение",
description: "Начните разговор со своим ИИ-помощником",
action: "Чат",
},
embed_document: {
title: null,
description: null,
action: null,
title: "Вставить документ",
description: "Добавьте свой первый документ в рабочее пространство",
action: "Встраивать",
},
setup_system_prompt: {
title: null,
description: null,
action: null,
title: "Настройте систему подсказок.",
description: "Настройте поведение вашего AI-помощника",
action: "Настройка",
},
define_slash_command: {
title: null,
description: null,
action: null,
title: 'Определите команду, начинающуюся с символа "/"',
description: "Создайте собственные команды для своего ассистента",
action: "Определите",
},
visit_community: {
title: null,
description: null,
action: null,
title: "Посетите Центр сообщества",
description: "Изучите доступные ресурсы и шаблоны сообщества",
action: "Просмотр",
},
},
},
quickLinks: {
title: null,
sendChat: null,
embedDocument: null,
createWorkspace: null,
title: "Быстрые ссылки",
sendChat: "Отправить чат",
embedDocument: "Вставить документ",
createWorkspace: "Создайте рабочее пространство.",
},
exploreMore: {
title: null,
title: "Узнать больше о функциях",
features: {
customAgents: {
title: null,
description: null,
primaryAction: null,
secondaryAction: null,
title: "Индивидуальные ИИ-агенты",
description:
"Создавайте мощных ИИ-агентов и автоматизируйте процессы без написания кода.",
primaryAction: "Общение с помощью @agent",
secondaryAction: "Создайте поток действий для агента.",
},
slashCommands: {
title: null,
description: null,
primaryAction: null,
secondaryAction: null,
title: "Команды быстрого доступа",
description:
"Экономьте время и используйте пользовательские команды для ввода запросов.",
primaryAction: "Создайте команду Slash",
secondaryAction: "Изучите информацию на платформе Hub",
},
systemPrompts: {
title: null,
description: null,
primaryAction: null,
secondaryAction: null,
title: "Системы подсказок",
description:
"Настройте системный запрос, чтобы настроить ответы ИИ для конкретного рабочего пространства.",
primaryAction: "Измените системный запрос",
secondaryAction: "Управляйте переменными запросов",
},
},
},
announcements: {
title: null,
title: "Обновления и объявления",
},
resources: {
title: null,
title: "Ресурсы",
links: {
docs: null,
star: null,
docs: "Документы",
star: "Звезда на GitHub",
},
keyboardShortcuts: null,
keyboardShortcuts: "Сочетания клавиш",
},
},
"keyboard-shortcuts": {
title: null,
title: "Сочетания клавиш",
shortcuts: {
settings: null,
workspaceSettings: null,
home: null,
workspaces: null,
apiKeys: null,
llmPreferences: null,
chatSettings: null,
help: null,
showLLMSelector: null,
settings: "Открыть настройки",
workspaceSettings: "Открыть текущие настройки рабочего пространства",
home: "Вернуться на главную",
workspaces: "Управление рабочими пространствами",
apiKeys: "Настройки API-ключей",
llmPreferences: "Предпочтения LLM",
chatSettings: "Настройки чата",
help: "Показать справку о сочетаниях клавиш",
showLLMSelector: "Выбор рабочей среды для LLM",
},
},
community_hub: {
publish: {
system_prompt: {
success_title: null,
success_description: null,
success_thank_you: null,
view_on_hub: null,
modal_title: null,
name_label: null,
name_description: null,
name_placeholder: null,
description_label: null,
description_description: null,
tags_label: null,
tags_description: null,
tags_placeholder: null,
visibility_label: null,
public_description: null,
private_description: null,
publish_button: null,
submitting: null,
submit: null,
prompt_label: null,
prompt_description: null,
prompt_placeholder: null,
success_title: "Успех!",
success_description:
"Ваш системный запрос был опубликован в Центре сообщества!",
success_thank_you: "Спасибо за то, что поделились с сообществом!",
view_on_hub: "Просмотр в Центре сообщества",
modal_title: "Система оповещения",
name_label: "Имя:\n\nИмя:",
name_description:
"Это имя, которое отображается для вашего системного запроса.",
name_placeholder: "Моя системная подсказка",
description_label: "Описание",
description_description:
"Это описание вашего системного запроса. Используйте его для описания цели вашего системного запроса.",
tags_label: "Теги",
tags_description:
"Теги используются для обозначения вашего запроса в системе, чтобы облегчить поиск. Вы можете добавить несколько тегов. Максимум 5 тегов. Максимальная длина каждого тега 20 символов.",
tags_placeholder: "Введите текст и нажмите Enter, чтобы добавить теги.",
visibility_label: "Видимость",
public_description:
"Эти подсказки доступны для просмотра всем пользователям.",
private_description: "Личные сообщения отображаются только вам.",
publish_button: "Опубликовать в Центре сообщества",
submitting: "Публикация...",
submit: "Опубликовать в Центре сообщества",
prompt_label: "Запрос",
prompt_description:
"Это фактический запрос, который будет использоваться для управления языковой моделью.",
prompt_placeholder: "Введите здесь запрос для вашей системы...",
},
agent_flow: {
public_description: null,
private_description: null,
success_title: null,
success_description: null,
success_thank_you: null,
view_on_hub: null,
modal_title: null,
name_label: null,
name_description: null,
name_placeholder: null,
description_label: null,
description_description: null,
tags_label: null,
tags_description: null,
tags_placeholder: null,
visibility_label: null,
publish_button: null,
submitting: null,
submit: null,
privacy_note: null,
public_description:
"Все пользователи могут видеть потоки данных, передаваемых через публичные каналы.",
private_description:
"Данные о частных транзакциях доступны только вам.",
success_title: "Успех!",
success_description:
'Ваш профиль "Agent Flow" опубликован в Центре сообщества!',
success_thank_you: "Спасибо за то, что поделились с сообществом!",
view_on_hub: "Просмотр в Центре сообщества",
modal_title: "Офис агента",
name_label: "Имя:\n\nИмя:",
name_description:
"Это имя, которое отображается для вашего сценария автоматизации.",
name_placeholder: "Мой агент это...",
description_label: "Описание",
description_description:
"Это описание вашего процесса взаимодействия с агентом. Используйте его для описания цели вашего процесса взаимодействия с агентом.",
tags_label: "Теги",
tags_description:
"Теги используются для обозначения вашего процесса работы с агентами, чтобы упростить поиск. Вы можете добавить несколько тегов. Максимум 5 тегов. Максимальная длина каждого тега 20 символов.",
tags_placeholder: "Введите текст и нажмите Enter, чтобы добавить теги.",
visibility_label: "Видимость",
publish_button: "Опубликовать в Центре сообщества",
submitting: "Публикация...",
submit: "Опубликовать в Центре сообщества",
privacy_note:
"Потоки данных всегда загружаются в режиме конфиденциальности, чтобы защитить любую конфиденциальную информацию. Вы можете изменить видимость потока в Центре сообщества после публикации. Пожалуйста, убедитесь, что ваш поток не содержит никакой конфиденциальной или личной информации перед публикацией.",
},
generic: {
unauthenticated: {
title: null,
description: null,
button: null,
title: "Требуется аутентификация",
description:
"Для публикации материалов необходимо сначала пройти аутентификацию в сообществе AnythingLLM.",
button: "Подключитесь к центру сообщества",
},
},
slash_command: {
success_title: null,
success_description: null,
success_thank_you: null,
view_on_hub: null,
modal_title: null,
name_label: null,
name_description: null,
name_placeholder: null,
description_label: null,
description_description: null,
command_label: null,
command_description: null,
command_placeholder: null,
tags_label: null,
tags_description: null,
tags_placeholder: null,
visibility_label: null,
public_description: null,
private_description: null,
publish_button: null,
submitting: null,
prompt_label: null,
prompt_description: null,
prompt_placeholder: null,
success_title: "Успех!",
success_description:
"Ваш Slash-команда был опубликован в Центре сообщества!",
success_thank_you: "Спасибо за то, что поделились с сообществом!",
view_on_hub: "Просмотр в Центре сообщества",
modal_title: "Опубликуйте команду Slash",
name_label: "Имя:\n\nИмя:",
name_description:
"Это имя, которое будет отображаться для вашего команды.",
name_placeholder: "Мой Slash-команда",
description_label: "Описание",
description_description:
"Это описание вашего командного оператора. Используйте его для описания цели вашего командного оператора.",
command_label: "Команда",
command_description:
"Это команда, которую пользователи будут вводить, чтобы активировать этот предустановленный режим.",
command_placeholder: "my-command",
tags_label: "Теги",
tags_description:
"Теги используются для обозначения вашего командного оператора, чтобы облегчить поиск. Вы можете добавить несколько тегов. Максимум 5 тегов. Максимальная длина каждого тега 20 символов.",
tags_placeholder: "Введите текст и нажмите Enter, чтобы добавить теги.",
visibility_label: "Видимость",
public_description: "Общие команды, доступные для всех пользователей.",
private_description: "Приватные команды, доступные только вам.",
publish_button: "Опубликовать в Центре сообщества",
submitting: "Публикация...",
prompt_label: "Запрос",
prompt_description:
'Это запрос, который будет использован при активации команды, содержащей символ "/".',
prompt_placeholder: "Введите свой запрос здесь...",
},
},
},

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -98,7 +98,7 @@ const TRANSLATIONS = {
contact: "联系支持",
"browser-extension": "浏览器扩展",
"system-prompt-variables": "系统提示变量",
"mobile-app": null,
"mobile-app": "AnythingLLM 移动版",
},
login: {
"multi-user": {
@ -488,8 +488,9 @@ const TRANSLATIONS = {
link: "链接",
},
"render-html": {
title: null,
description: null,
title: "在聊天中渲染 HTML",
description:
"在助手回复中呈现 HTML 响应。\n这可以显著提高回复的质量但也可能带来潜在的安全风险。",
},
},
},
@ -518,7 +519,8 @@ const TRANSLATIONS = {
model_type: "模型类型",
default: "预设",
reasoning: "推理",
model_type_tooltip: null,
model_type_tooltip:
"如果您的部署使用了推理模型(例如 o1、o1-mini、o3-mini 等),请将此选项设置为“推理”。否则,您的聊天请求可能会失败。",
},
},
},
@ -714,8 +716,9 @@ const TRANSLATIONS = {
pat_token: "Confluence 个人访问令牌",
pat_token_explained: "您的 Confluence 个人访问令牌。",
task_explained: "完成后,页面内容将可用于在文档选择器中嵌入至工作区。",
bypass_ssl: null,
bypass_ssl_explained: null,
bypass_ssl: "绕过 SSL 证书验证",
bypass_ssl_explained:
"启用此选项以绕过对自托管 Confluence 实例的 SSL 证书验证,特别是使用自签名证书的情况。",
},
manage: {
documents: "文档",
@ -823,7 +826,7 @@ const TRANSLATIONS = {
cancel: "取消",
edit_prompt: "编辑问题",
edit_response: "编辑回应",
at_agent: "代理",
at_agent: "@agent",
default_agent_description: " - 此工作区的预设代理。",
custom_agents_coming_soon: "自定义代理功能即将推出!",
slash_reset: "/reset",

View File

@ -98,7 +98,7 @@ const TRANSLATIONS = {
interface: "使用者介面偏好設定",
branding: "品牌與白標設定",
chat: "聊天室",
"mobile-app": null,
"mobile-app": "AnythingLLM 應用程式",
},
login: {
"multi-user": {
@ -346,7 +346,8 @@ const TRANSLATIONS = {
model_type: "模型類型",
default: "預設",
reasoning: "推理",
model_type_tooltip: null,
model_type_tooltip:
"如果您的部署使用推理模型(例如 o1、o1-mini、o3-mini 等),請將此設定設為「推理」。否則,您的對話請求可能會失敗。",
},
},
},
@ -543,8 +544,9 @@ const TRANSLATIONS = {
pat_token: "Confluence 個人存取權杖",
pat_token_explained: "您的 Confluence 個人存取權杖。",
task_explained: "完成後,頁面內容將可供嵌入到工作區中的檔案選擇器。",
bypass_ssl: null,
bypass_ssl_explained: null,
bypass_ssl: "跳過 SSL 憑證驗證",
bypass_ssl_explained:
"啟用此選項,以繞過自簽憑證的 SSL 憑證驗證,適用於您自行託管的 Confluence 實例。",
},
manage: {
documents: "文件",
@ -652,7 +654,7 @@ const TRANSLATIONS = {
cancel: "取消",
edit_prompt: "編輯問題",
edit_response: "編輯回應",
at_agent: "代理",
at_agent: "@agent",
default_agent_description: " - 此工作區的預設代理。",
custom_agents_coming_soon: "自訂代理功能即將推出!",
slash_reset: "/reset",
@ -786,8 +788,9 @@ const TRANSLATIONS = {
link: "連結",
},
"render-html": {
title: null,
description: null,
title: "將 HTML 內容轉換為聊天格式",
description:
"將 HTML 格式的回應嵌入到助理的回應中。\n這可以顯著提高回應品質但也可能帶來潛在的安全風險。",
},
},
},

View File

@ -28,7 +28,7 @@
"generate:cloudformation": "node cloud-deployments/aws/cloudformation/generate.mjs",
"generate::gcp_deployment": "node cloud-deployments/gcp/deployment/generate.mjs",
"verify:translations": "cd frontend/src/locales && node verifyTranslations.mjs",
"normalize:translations": "cd frontend/src/locales && node normalizeEn.mjs && cd ../../.. && yarn lint && yarn verify:translations"
"normalize:translations": "cd frontend/src/locales && node normalizeEn.mjs && cd ../../.. && cd frontend && yarn lint && cd .. && yarn verify:translations"
},
"private": false,
"devDependencies": {

View File

@ -23,7 +23,7 @@ class DockerModelRunnerLLM {
constructor(embedder = null, modelPreference = null) {
if (!process.env.DOCKER_MODEL_RUNNER_BASE_PATH)
throw new Error("No Docker Model Runner API Base Path was set.");
if (!process.env.DOCKER_MODEL_RUNNER_LLM_MODEL_PREF)
if (!process.env.DOCKER_MODEL_RUNNER_LLM_MODEL_PREF && !modelPreference)
throw new Error("No Docker Model Runner Model Pref was set.");
this.dmr = new OpenAIApi({
@ -439,9 +439,27 @@ async function getDockerModels(basePath = null, task = "chat") {
for (const tag of tags) {
if (!installedModels[tag.id])
availableModels[modelName].tags.push({ ...tag, downloaded: false });
else availableModels[modelName].tags.push({ ...tag, downloaded: true });
else {
availableModels[modelName].tags.push({ ...tag, downloaded: true });
// remove the model from the installed models list so we dont double append it to the available models list
// when checking for custom models
delete installedModels[tag.id];
}
}
}
// For any models that are still in the installed models list, we need to append them to the available models list as downloaded
for (const model of Object.values(installedModels)) {
const organization = model.id.split("/").pop();
const name = model.id.split("/").pop();
if (!availableModels[organization])
availableModels[organization] = { tags: [] };
availableModels[organization].tags.push({
...model,
downloaded: true,
name: name,
});
}
} catch (e) {
DockerModelRunnerLLM.slog(`Error getting Docker models`, e);
} finally {