Feat/i18n workflow (#4819)

This commit is contained in:
crazywoola
2024-05-30 21:03:32 +08:00
committed by GitHub
parent 38a470a873
commit 3de8e8fd6a
9 changed files with 1517 additions and 1062 deletions

View File

@@ -7,166 +7,186 @@ const translation = {
publish: 'Publică',
update: 'Actualizează',
run: 'Rulează',
running: 'În desfășurare',
running: 'Rulând',
inRunMode: 'În modul de rulare',
inPreview: 'În previzualizare',
inPreviewMode: 'În modul de previzualizare',
preview: 'Previzualizare',
viewRunHistory: 'Vezi istoricul de rulare',
runHistory: 'Istoric de rulare',
preview: 'Previzualizează',
viewRunHistory: 'Vezi istoricul rulărilor',
runHistory: 'Istoric rulări',
goBackToEdit: 'Înapoi la editor',
conversationLog: 'Jurnal de conversație',
features: 'Caracteristici',
conversationLog: 'Jurnal conversație',
features: 'Funcționalități',
debugAndPreview: 'Depanare și previzualizare',
restart: 'Repornește',
currentDraft: 'Schița curentă',
currentDraftUnpublished: 'Schița curentă nepublicată',
latestPublished: 'Cel mai recent publicat',
currentDraft: 'Schimbare curentă',
currentDraftUnpublished: 'Schimbare curentă nepublicată',
latestPublished: 'Ultima publicare',
publishedAt: 'Publicat la',
restore: 'Restaurează',
runApp: 'Rulează aplicația',
batchRunApp: 'Rulează aplicația în lot',
accessAPIReference: 'Accesează referința API',
embedIntoSite: 'Încorporează în site',
embedIntoSite: 'Incorporează în site',
addTitle: 'Adaugă titlu...',
addDescription: 'Adaugă descriere...',
noVar: 'Nicio variabilă',
noVar: 'Fără variabilă',
searchVar: 'Caută variabilă',
variableNamePlaceholder: 'Numele variabilei',
setVarValuePlaceholder: 'Setează variabila',
needConnecttip: 'Această etapă nu este conectată la nimic',
variableNamePlaceholder: 'Nume variabilă',
setVarValuePlaceholder: 'Setează valoarea variabilei',
needConnecttip: 'Acest pas nu este conectat la nimic',
maxTreeDepth: 'Limită maximă de {{depth}} noduri pe ramură',
needEndNode: 'Blocul de Sfârșit trebuie adăugat',
needAnswerNode: 'Blocul de Răspuns trebuie adăugat',
needEndNode: 'Trebuie adăugat blocul de sfârșit',
needAnswerNode: 'Trebuie adăugat blocul de răspuns',
workflowProcess: 'Proces de flux de lucru',
notRunning: 'Încă nu rulează',
previewPlaceholder: 'Introduceți conținutul în caseta de mai jos pentru a începe depanarea Chatbot-ului',
previewPlaceholder: 'Introduceți conținutul în caseta de mai jos pentru a începe depanarea Chatbotului',
effectVarConfirm: {
title: 'Elimină variabila',
content: 'Variabila este utilizată în alte noduri. Doriți totuși să o eliminați?',
content: 'Variabila este utilizată în alte noduri. Doriți să o eliminați oricum?',
},
insertVarTip: 'Apăsați tasta \'/\' pentru a insera rapid',
processData: 'Procesează datele',
processData: 'Procesează date',
input: 'Intrare',
output: 'Ieșire',
jinjaEditorPlaceholder: 'Tastați \'/\' sau \'{\' pentru a insera variabila',
viewOnly: 'Doar vizualizare',
showRunHistory: 'Afișează istoricul de rulare',
viewOnly: 'Vizualizare doar',
showRunHistory: 'Afișează istoricul rulărilor',
enableJinja: 'Activează suportul pentru șabloane Jinja',
learnMore: 'Află mai multe',
copy: 'Copiază',
duplicate: 'Duplică',
addBlock: 'Adaugă Bloc',
pasteHere: 'Lipește Aici',
pointerMode: 'Mod Indicator',
handMode: 'Mod Manual',
addBlock: 'Adaugă bloc',
pasteHere: 'Lipește aici',
pointerMode: 'Modul pointer',
handMode: 'Modul mână',
model: 'Model',
workflowAsTool: 'Flux de lucru ca instrument',
configureRequired: 'Configurare necesară',
configure: 'Configurează',
manageInTools: 'Gestionează în instrumente',
workflowAsToolTip: 'Reconfigurarea instrumentului este necesară după actualizarea fluxului de lucru.',
viewDetailInTracingPanel: 'Vezi detalii',
},
errorMsg: {
fieldRequired: '{{field}} este obligatoriu',
authRequired: 'Este necesară autorizarea',
invalidJson: '{{field}} nu este un JSON valid',
authRequired: 'Autorizarea este necesară',
invalidJson: '{{field}} este un JSON invalid',
fields: {
variable: 'Numele variabilei',
variableValue: 'Valoarea variabilei',
variable: 'Nume variabilă',
variableValue: 'Valoare variabilă',
code: 'Cod',
model: 'Model',
rerankModel: 'Model de reevaluare',
rerankModel: 'Model de rerankare',
},
invalidVariable: 'Variabilă invalidă',
},
singleRun: {
testRun: 'Rulare de test',
testRun: 'Rulare de test ',
startRun: 'Începe rularea',
running: 'În desfășurare',
running: 'Rulând',
testRunIteration: 'Iterație rulare de test',
back: 'Înapoi',
iteration: 'Iterație',
},
tabs: {
'searchBlock': 'Căutare bloc',
'searchBlock': 'Caută bloc',
'blocks': 'Blocuri',
'builtInTool': 'Instrument încorporat',
'customTool': 'Instrument personalizat',
'question-understand': 'Înțelegerea întrebării',
'tools': 'Instrumente',
'allTool': 'Toate',
'builtInTool': 'Integrat',
'customTool': 'Personalizat',
'workflowTool': 'Flux de lucru',
'question-understand': 'Înțelegerea întrebărilor',
'logic': 'Logică',
'transform': 'Transformare',
'utilities': 'Utilități',
'noResult': 'Nicio potrivire găsită',
'noResult': 'Niciun rezultat găsit',
},
blocks: {
'start': 'Început',
'start': 'Începe',
'end': 'Sfârșit',
'answer': 'Răspuns',
'llm': 'LLM',
'knowledge-retrieval': 'Recuperare cunoștințe',
'knowledge-retrieval': 'Recuperare de cunoștințe',
'question-classifier': 'Clasificator de întrebări',
'if-else': 'DACĂ/ALTĂFEL',
'if-else': 'Dacă/Altminteri',
'code': 'Cod',
'template-transform': 'Șablon',
'http-request': 'Cerere HTTP',
'variable-assigner': 'Atribuire variabilă',
'variable-assigner': 'Asignator de variabile',
'variable-aggregator': 'Agregator de variabile',
'iteration-start': 'Început de iterație',
'iteration': 'Iterație',
'parameter-extractor': 'Extractor de parametri',
},
blocksAbout: {
'start': 'Definiți parametrii inițiali pentru lansarea unui flux de lucru',
'end': 'Definiți sfârșitul și tipul de rezultat al unui flux de lucru',
'answer': 'Definiți conținutul de răspuns al unei conversații prin chat',
'llm': 'Invocarea modelelor de limbaj extinse pentru a răspunde la întrebări sau a procesa limbajul natural',
'knowledge-retrieval': 'Vă permite interogați conținutul text legat de întrebările utilizatorului din Cunoștințe',
'question-classifier': 'Definiți condițiile de clasificare ale întrebărilor utilizatorului, LLM poate defini modul în care conversația progresează pe baza descrierii clasificării',
'if-else': 'Vă permite împărțiți fluxul de lucru în două ramuri pe baza condițiilor dacă/altăfel',
'code': 'Executați un fragment de cod Python sau NodeJS pentru a implementa o logică personalizată',
'template-transform': 'Conversia datelor în șiruri folosind sintaxa șablonului Jinja',
'http-request': 'Permite trimiterea de cereri de la server prin protocolul HTTP',
'variable-assigner': 'Atribuie variabile în diferite ramuri aceleiași variabile pentru a obține o configurare unificată a post-nodurilor',
'end': 'Definiți sfârșitul și tipul rezultatului unui flux de lucru',
'answer': 'Definiți conținutul răspunsului unei conversații',
'llm': 'Invocarea modelelor de limbaj mari pentru a răspunde la întrebări sau pentru a procesa limbajul natural',
'knowledge-retrieval': 'Permite interogarea conținutului textului legat de întrebările utilizatorului din baza de cunoștințe',
'question-classifier': 'Definiți condițiile de clasificare a întrebărilor utilizatorului, LLM poate defini cum progresează conversația pe baza descrierii clasificării',
'if-else': 'Permite împărțirea fluxului de lucru în două ramuri pe baza condițiilor if/else',
'code': 'Executați un fragment de cod Python sau NodeJS pentru a implementa logică personalizată',
'template-transform': 'Convertiți datele în șiruri de caractere folosind sintaxa șablonului Jinja',
'http-request': 'Permite trimiterea cererilor de server prin protocolul HTTP',
'variable-assigner': 'Agregarea variabilelor din mai multe ramuri într-o singură variabilă pentru configurarea unificată a nodurilor ulterioare.',
'variable-aggregator': 'Agregarea variabilelor din mai multe ramuri într-o singură variabilă pentru configurarea unificată a nodurilor ulterioare.',
'iteration': 'Efectuați mai mulți pași pe un obiect listă până când toate rezultatele sunt produse.',
'parameter-extractor': 'Utilizați LLM pentru a extrage parametrii structurați din limbajul natural pentru invocările de instrumente sau cererile HTTP.',
},
operator: {
zoomIn: 'Mărește',
zoomOut: 'Micșorează',
zoomTo50: 'Zoom la 50%',
zoomTo100: 'Zoom la 100%',
zoomToFit: 'Zoom la potrivire',
zoomTo50: 'Mărește la 50%',
zoomTo100: 'Mărește la 100%',
zoomToFit: 'Mărește pentru a se potrivi',
},
panel: {
userInputField: 'Câmp de intrare utilizator',
userInputField: 'Câmp de introducere utilizator',
changeBlock: 'Schimbă blocul',
helpLink: 'Link de ajutor',
about: 'Despre',
createdBy: 'Creat de ',
nextStep: 'Pasul următor',
addNextStep: 'Adăugați următorul bloc în acest flux de lucru',
selectNextStep: 'Selectați blocul următor',
selectNextStep: 'Selectați următorul bloc',
runThisStep: 'Rulează acest pas',
checklist: 'Listă de verificare',
checklist: 'Lista de verificare',
checklistTip: 'Asigurați-vă că toate problemele sunt rezolvate înainte de publicare',
checklistResolved: 'Toate problemele sunt rezolvate',
organizeBlocks: 'Organizați blocurile',
checklistResolved: 'Toate problemele au fost rezolvate',
organizeBlocks: 'Organizează blocurile',
change: 'Schimbă',
},
nodes: {
common: {
outputVars: 'Variabile de ieșire',
insertVarTip: 'Inserați variabila',
insertVarTip: 'Inserează variabilă',
memory: {
memory: 'Memorie',
memoryTip: 'Configurări de memorie pentru chat',
memoryTip: 'Setări de memorie pentru conversație',
windowSize: 'Dimensiunea ferestrei',
conversationRoleName: 'Numele rolului de conversație',
conversationRoleName: 'Numele rolului în conversație',
user: 'Prefix utilizator',
assistant: 'Prefix asistent',
},
memories: {
title: 'Amintiri',
tip: 'Memorie de chat',
builtIn: 'Încorporat',
tip: 'Memoria conversației',
builtIn: 'Integrat',
},
},
start: {
required: 'obligatoriu',
required: 'necesar',
inputField: 'Câmp de intrare',
builtInVar: 'Variabile încorporate',
builtInVar: 'Variabile integrate',
outputVars: {
query: 'Intrare utilizator',
memories: {
des: 'Istoricul conversației',
type: 'tipul mesajului',
content: 'conținutul mesajului',
des: 'Istoric conversație',
type: 'tip mesaj',
content: 'conținut mesaj',
},
files: 'Listă de fișiere',
},
@@ -175,11 +195,11 @@ const translation = {
end: {
outputs: 'Ieșiri',
output: {
type: 'tipul ieșirii',
variable: 'variabila de ieșire',
type: 'tip ieșire',
variable: 'variabilă de ieșire',
},
type: {
'none': 'Niciunul',
'none': 'Nimic',
'plain-text': 'Text simplu',
'structured': 'Structurat',
},
@@ -192,36 +212,36 @@ const translation = {
model: 'model',
variables: 'variabile',
context: 'context',
contextTooltip: 'Puteți importa Cunoștințe ca context',
notSetContextInPromptTip: 'Pentru a activa funcția de context, vă rugăm să completați variabila de context în PROMPT.',
contextTooltip: 'Puteți importa cunoștințe ca și context',
notSetContextInPromptTip: 'Pentru a activa funcția de context, completați variabila de context în PROMPT.',
prompt: 'prompt',
roleDescription: {
system: 'Dați instrucțiuni de nivel înalt pentru conversație',
user: 'Furnizați instrucțiuni, interogări sau orice intrare bazată pe text pentru model',
user: 'Furnizați instrucțiuni, întrebări sau orice intrare bazată pe text pentru model',
assistant: 'Răspunsurile modelului bazate pe mesajele utilizatorului',
},
addMessage: 'Adăugați mesaj',
addMessage: 'Adaugă mesaj',
vision: 'viziune',
files: 'Fișiere',
resolution: {
name: 'Rezoluție',
high: 'Înaltă',
low: 'Scăzută',
low: 'Joasă',
},
outputVars: {
output: 'Generați conținut',
usage: 'Informații despre utilizarea modelului',
output: 'Conținut generat',
usage: 'Informații de utilizare a modelului',
},
singleRun: {
variable: 'Variabilă',
},
sysQueryInUser: 'sys.query în mesajul utilizatorului este obligatoriu',
sysQueryInUser: 'sys.query în mesajul utilizatorului este necesar',
},
knowledgeRetrieval: {
queryVariable: 'Variabilă de interogare',
knowledge: 'Cunoștințe',
outputVars: {
output: 'Date segmentate de recuperare',
output: 'Date segmentate recuperate',
content: 'Conținut segmentat',
title: 'Titlu segmentat',
icon: 'Pictogramă segmentată',
@@ -232,63 +252,63 @@ const translation = {
http: {
inputVars: 'Variabile de intrare',
api: 'API',
apiPlaceholder: 'Introduceți URL-ul, tastați \'/\' pentru a insera variabila',
apiPlaceholder: 'Introduceți URL-ul, tastați / pentru a insera variabilă',
notStartWithHttp: 'API-ul trebuie să înceapă cu http:// sau https://',
key: 'Cheie',
value: 'Valoare',
bulkEdit: 'Editare în bloc',
bulkEdit: 'Editare în masă',
keyValueEdit: 'Editare cheie-valoare',
headers: 'Antete',
params: 'Parametri',
body: 'Corp',
outputVars: {
body: 'Conținutul răspunsului',
statusCode: 'Codul de stare al răspunsului',
headers: 'Listă anteturi răspuns JSON',
files: 'Listă de fișiere',
statusCode: 'Cod de stare al răspunsului',
headers: 'Lista antetelor de răspuns în format JSON',
files: 'Lista fișierelor',
},
authorization: {
'authorization': 'Autorizare',
'authorizationType': 'Tipul autorizării',
'no-auth': 'Niciunul',
'authorizationType': 'Tip de autorizare',
'no-auth': 'Niciuna',
'api-key': 'Cheie API',
'auth-type': 'Tipul autentificării',
'auth-type': 'Tip de autentificare',
'basic': 'De bază',
'bearer': 'Bearer',
'custom': 'Personalizat',
'api-key-title': 'Cheie API',
'header': 'Antet',
},
insertVarPlaceholder: 'tastați \'/\' pentru a insera variabila',
insertVarPlaceholder: 'tastați \'/\' pentru a insera variabilă',
timeout: {
title: 'Timeout',
connectLabel: 'Timeout de conectare',
connectPlaceholder: 'Introduceți timeout-ul de conectare în secunde',
readLabel: 'Timeout de citire',
readPlaceholder: 'Introduceți timeout-ul de citire în secunde',
writeLabel: 'Timeout de scriere',
writePlaceholder: 'Introduceți timeout-ul de scriere în secunde',
title: 'Timp limită',
connectLabel: 'Timp limită pentru conexiune',
connectPlaceholder: 'Introduceți timpul limită pentru conexiune în secunde',
readLabel: 'Timp limită pentru citire',
readPlaceholder: 'Introduceți timpul limită pentru citire în secunde',
writeLabel: 'Timp limită pentru scriere',
writePlaceholder: 'Introduceți timpul limită pentru scriere în secunde',
},
},
code: {
inputVars: 'Variabile de intrare',
outputVars: 'Variabile de ieșire',
advancedDependencies: 'Dependențe Avansate',
advancedDependenciesTip: 'Adăugați aici unele dependențe preîncărcate care necesită mai mult timp pentru a fi utilizate sau care nu sunt în mod implicit integrate',
searchDependencies: 'Căutați Dependențe',
advancedDependencies: 'Dependențe avansate',
advancedDependenciesTip: 'Adăugați câteva dependențe preîncărcate care necesită mai mult timp pentru a consuma sau nu sunt integrate implicit aici',
searchDependencies: 'Căutați dependențe',
},
templateTransform: {
inputVars: 'Variabile de intrare',
code: 'Cod',
codeSupportTip: 'Acceptă doar Jinja2',
codeSupportTip: 'Suportă doar Jinja2',
outputVars: {
output: 'Conținutul transformat',
output: 'Conținut transformat',
},
},
ifElse: {
if: 'Dacă',
else: 'Altfel',
elseDescription: 'Utilizat pentru a defini logica care trebuie executată atunci când condiția dacă nu este îndeplinită.',
else: 'Altminteri',
elseDescription: 'Utilizat pentru a defini logica care ar trebui executată atunci când condiția if nu este îndeplinită.',
and: 'și',
or: 'sau',
operator: 'Operator',
@@ -302,40 +322,43 @@ const translation = {
'is not': 'nu este',
'empty': 'este gol',
'not empty': 'nu este gol',
'null': 'este nul',
'not null': 'nu este nul',
'null': 'este null',
'not null': 'nu este null',
},
enterValue: 'Introduceți valoarea',
addCondition: 'Adăugați condiție',
conditionNotSetup: 'Condiția NU este configurată',
conditionNotSetup: 'Condiția NU este setată',
},
variableAssigner: {
title: 'Atribuire variabile',
outputType: 'Tipul ieșirii',
outputVarType: 'Tipul variabilei de ieșire',
title: 'Atribuie variabile',
outputType: 'Tip de ieșire',
varNotSet: 'Variabila nu este setată',
noVarTip: 'Adăugați variabilele care trebuie atribuite',
noVarTip: 'Adăugați variabilele de atribuit',
type: {
string: 'Șir de caractere',
string: 'Șir',
number: 'Număr',
object: 'Obiect',
array: 'Tablou',
array: 'Array',
},
aggregationGroup: 'Grup de agregare',
aggregationGroupTip: 'Activarea acestei funcții permite agregatorului de variabile să agrege mai multe seturi de variabile.',
addGroup: 'Adăugați grup',
outputVars: {
output: 'Valoarea variabilei atribuite',
varDescribe: 'Ieșire {{groupName}}',
},
setAssignVariable: 'Setați variabila de atribuire',
},
tool: {
toAuthorize: 'Pentru a autoriza',
toAuthorize: 'Autorizați',
inputVars: 'Variabile de intrare',
outputVars: {
text: 'Conținut generat de instrument',
text: 'conținut generat de instrument',
files: {
title: 'Fișiere generate de instrument',
type: 'Tipul suportat. Acum suportă doar imaginea',
transfer_method: 'Metoda de transfer. Valoarea este remote_url sau local_file',
url: 'URL-ul imaginii',
upload_file_id: 'ID-ul fișierului încărcat',
title: 'fișiere generate de instrument',
type: 'Tip de suport. Acum acceptă doar imagine',
transfer_method: 'Metodă de transfer. Valoarea este remote_url sau local_file',
url: 'URL imagine',
upload_file_id: 'ID fișier încărcat',
},
},
},
@@ -343,17 +366,51 @@ const translation = {
model: 'model',
inputVars: 'Variabile de intrare',
outputVars: {
className: 'Numele clasei',
className: 'Nume clasă',
},
class: 'Clasă',
classNamePlaceholder: 'Scrieți numele clasei',
advancedSetting: 'Configurare avansată',
topicName: 'Numele subiectului',
advancedSetting: 'Setare avansată',
topicName: 'Nume subiect',
topicPlaceholder: 'Scrieți numele subiectului',
addClass: 'Adăugați clasă',
instruction: 'Instrucțiune',
instructionTip: 'Introduceți instrucțiuni suplimentare pentru a ajuta clasificatorul de întrebări să înțeleagă mai bine cum să categorizeze întrebările.',
instructionPlaceholder: 'Scrieți instrucțiunea',
},
parameterExtractor: {
inputVar: 'Variabilă de intrare',
extractParameters: 'Extrageți parametrii',
importFromTool: 'Importă din instrumente',
addExtractParameter: 'Adăugați parametru de extragere',
addExtractParameterContent: {
name: 'Nume',
namePlaceholder: 'Nume parametru de extragere',
type: 'Tip',
typePlaceholder: 'Tip parametru de extragere',
description: 'Descriere',
descriptionPlaceholder: 'Descriere parametru de extragere',
required: 'Necesar',
requiredContent: 'Necesar este utilizat doar ca referință pentru inferența modelului și nu pentru validarea obligatorie a ieșirii parametrului.',
},
extractParametersNotSet: 'Parametrii de extragere nu sunt setați',
instruction: 'Instrucțiune',
instructionTip: 'Introduceți instrucțiuni suplimentare pentru a ajuta extractorul de parametri să înțeleagă cum să extragă parametrii.',
advancedSetting: 'Setare avansată',
reasoningMode: 'Mod de raționament',
reasoningModeTip: 'Puteți alege modul de raționament potrivit în funcție de capacitatea modelului de a răspunde la instrucțiuni pentru apelarea funcțiilor sau prompturi.',
isSuccess: 'Este succes. În caz de succes valoarea este 1, în caz de eșec valoarea este 0.',
errorReason: 'Motivul erorii',
},
iteration: {
deleteTitle: 'Ștergeți nodul de iterație?',
deleteDesc: 'Ștergerea nodului de iterație va șterge toate nodurile copil',
input: 'Intrare',
output: 'Variabile de ieșire',
iteration_one: '{{count}} Iterație',
iteration_other: '{{count}} Iterații',
currentIteration: 'Iterație curentă',
},
},
tracing: {
stopBy: 'Oprit de {{user}}',