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

@@ -8,25 +8,25 @@ const translation = {
update: 'Cập nhật',
run: 'Chạy',
running: 'Đang chạy',
inRunMode: 'Chế độ chạy',
inPreview: 'Ở Chế độ xem trước',
inPreviewMode: 'Chế độ xem trước',
inRunMode: 'Chế độ chạy',
inPreview: 'Trong chế độ xem trước',
inPreviewMode: 'Chế độ xem trước',
preview: 'Xem trước',
viewRunHistory: 'Xem lịch sử chạy',
runHistory: 'Lịch sử chạy',
goBackToEdit: 'Quay lại trình soạn thảo',
goBackToEdit: 'Quay lại trình chỉnh sửa',
conversationLog: 'Nhật ký cuộc trò chuyện',
features: 'Tính năng',
debugAndPreview: 'DebugXem trước',
debugAndPreview: 'Gỡ lỗixem trước',
restart: 'Khởi động lại',
currentDraft: 'Bản nháp hiện tại',
currentDraftUnpublished: 'Bản nháp hiện tại chưa xuất bản',
latestPublished: 'Bản xuất bản mới nhất',
publishedAt: 'Đã xuất bản lúc',
latestPublished: 'Xuất bản mới nhất',
publishedAt: 'Đã xuất bản tại',
restore: 'Khôi phục',
runApp: 'Chạy ứng dụng',
batchRunApp: 'Chạy ứng dụng hàng loạt',
accessAPIReference: 'Truy cập Tài liệu API',
accessAPIReference: 'Truy cập tài liệu API',
embedIntoSite: 'Nhúng vào trang web',
addTitle: 'Thêm tiêu đề...',
addDescription: 'Thêm mô tả...',
@@ -34,135 +34,155 @@ const translation = {
searchVar: 'Tìm kiếm biến',
variableNamePlaceholder: 'Tên biến',
setVarValuePlaceholder: 'Đặt giá trị biến',
needConnecttip: 'Bước này chưa kết nối với bất kỳ điều gì',
maxTreeDepth: 'Giới hạn tối đa của {{depth}} nút mỗi nhánh',
needEndNode: 'Khối Kết thúc phải được thêm vào',
needAnswerNode: 'Khối Trả lời phải được thêm vào',
needConnecttip: 'Bước này không được kết nối với bất kỳ điều gì',
maxTreeDepth: 'Giới hạn tối đa {{depth}} nút trên mỗi nhánh',
needEndNode: 'Phải thêm khối Kết thúc',
needAnswerNode: 'Phải thêm khối Trả lời',
workflowProcess: 'Quy trình làm việc',
notRunning: 'Chưa chạy',
previewPlaceholder: 'Nhập nội dung vào ô dưới đây để bắt đầu gỡ lỗi Chatbot',
previewPlaceholder: 'Nhập nội dung vào hộp bên dưới để bắt đầu gỡ lỗi Chatbot',
effectVarConfirm: {
title: 'Xóa biến',
content: 'Biến được sử dụng trong các nút khác. Bạn vẫn muốn xóa nó?',
content: 'Biến được sử dụng trong các nút khác. Bạn có chắc chắn muốn xóa nó không?',
},
insertVarTip: 'Nhấn phím \'/\' để chèn nhanh',
processData: 'Xử lý dữ liệu',
input: 'Nhập',
input: 'Đầu vào',
output: 'Đầu ra',
jinjaEditorPlaceholder: 'Nhập \'/\' hoặc \'{\' để chèn biến',
viewOnly: 'Chỉ Xem',
showRunHistory: 'Hiển Thị Lịch SChạy',
enableJinja: 'Kích Hoạt HTrợ Mẫu Jinja',
learnMore: 'Tìm Hiểu Thêm',
copy: 'Sao Chép',
duplicate: 'Nhân Bản',
addBlock: 'Thêm Khối',
pasteHere: 'Dán Vào Đây',
pointerMode: 'Chế ĐCon Trỏ',
handMode: 'Chế ĐTay',
jinjaEditorPlaceholder: ' \'/\' hoặc \'{\' để chèn biến',
viewOnly: 'Chỉ xem',
showRunHistory: 'Hiển thị lịch schạy',
enableJinja: 'Bật htrợ mẫu Jinja',
learnMore: 'Tìm hiểu thêm',
copy: 'Sao chép',
duplicate: 'Nhân bản',
addBlock: 'Thêm khối',
pasteHere: 'Dán vào đây',
pointerMode: 'Chế đcon trỏ',
handMode: 'Chế đtay',
model: 'Mô hình',
workflowAsTool: 'Quy trình làm việc như công cụ',
configureRequired: 'Yêu cầu cấu hình',
configure: 'Cấu hình',
manageInTools: 'Quản lý trong công cụ',
workflowAsToolTip: 'Cần cấu hình lại công cụ sau khi cập nhật quy trình làm việc.',
viewDetailInTracingPanel: 'Xem chi tiết',
},
errorMsg: {
fieldRequired: '{{field}} là bắt buộc',
authRequired: 'Yêu cầu xác thực',
invalidJson: '{{field}} không hợp lệ',
invalidJson: '{{field}} là JSON không hợp lệ',
fields: {
variable: 'Tên Biến',
variableValue: 'Giá trị Biến',
variable: 'Tên biến',
variableValue: 'Giá trị biến',
code: 'Mã',
model: 'Mô hình',
rerankModel: 'Mô hình Rerank',
rerankModel: 'Mô hình xếp hạng lại',
},
invalidVariable: 'Biến không hợp lệ',
},
singleRun: {
testRun: 'Chạy thử ',
testRun: 'Chạy thử nghiệm ',
startRun: 'Bắt đầu chạy',
running: 'Đang chạy',
testRunIteration: 'Lặp chạy thử nghiệm',
back: 'Quay lại',
iteration: 'Lặp',
},
tabs: {
'searchBlock': 'Tìm kiếm khối',
'blocks': 'Khối',
'builtInTool': 'Công cụ tích hợp',
'customTool': 'Công cụ tùy chỉnh',
'tools': 'Công cụ',
'allTool': 'Tất cả',
'builtInTool': 'Tích hợp sẵn',
'customTool': 'Tùy chỉnh',
'workflowTool': 'Quy trình làm việc',
'question-understand': 'Hiểu câu hỏi',
'logic': 'Logic',
'transform': 'Chuyển đổi',
'utilities': 'Tiện ích',
'noResult': 'Không tìm thấy kết quả',
'noResult': 'Không tìm thấy kết quả phù hợp',
},
blocks: {
'start': 'Bắt đầu',
'end': 'Kết thúc',
'answer': 'Trả lời',
'llm': 'LLM',
'knowledge-retrieval': 'Truy xuất Kiến thức',
'question-classifier': 'Bộ phân loại Câu hỏi',
'knowledge-retrieval': 'Truy xuất kiến thức',
'question-classifier': 'Phân loại câu hỏi',
'if-else': 'NẾU/NGƯỢC LẠI',
'code': 'Mã',
'template-transform': 'Mẫu',
'http-request': 'Yêu cầu HTTP',
'variable-assigner': 'Bộ gán biến',
'variable-assigner': 'Trình gán biến',
'variable-aggregator': 'Trình tổng hợp biến',
'iteration-start': 'Bắt đầu lặp',
'iteration': 'Lặp',
'parameter-extractor': 'Trình trích xuất tham số',
},
blocksAbout: {
'start': 'Xác định các tham số ban đầu cho việc khởi chạy một quy trình',
'end': 'Xác định kết thúc và loại kết quả của một quy trình',
'answer': 'Xác định nội dung trả lời của một cuộc trò chuyện chat',
'start': 'Định nghĩa các tham số ban đầu để khởi chạy quy trình làm việc',
'end': 'Định nghĩa kết thúc và loại kết quả của quy trình làm việc',
'answer': 'Định nghĩa nội dung trả lời của cuộc trò chuyện',
'llm': 'Gọi các mô hình ngôn ngữ lớn để trả lời câu hỏi hoặc xử lý ngôn ngữ tự nhiên',
'knowledge-retrieval': 'Cho phép bạn truy vấn nội dung văn bản liên quan đến các câu hỏi của người dùng từ Kiến thức',
'question-classifier': 'Xác định các điều kiện phân loại của các câu hỏi của người dùng, LLM có thể xác định cách cuộc trò chuyện tiến triển dựa trên mô tả phân loại',
'if-else': 'Cho phép bạn chia quy trình thành hai nhánh dựa trên các điều kiện if/else',
'knowledge-retrieval': 'Cho phép truy vấn nội dung văn bản liên quan đến câu hỏi của người dùng từ cơ sở kiến thức',
'question-classifier': 'Định nghĩa các điều kiện phân loại câu hỏi của người dùng, LLM có thể định nghĩa cách cuộc trò chuyện tiến triển dựa trên mô tả phân loại',
'if-else': 'Cho phép phân chia quy trình làm việc thành hai nhánh dựa trên điều kiện if/else',
'code': 'Thực thi một đoạn mã Python hoặc NodeJS để thực hiện logic tùy chỉnh',
'template-transform': 'Chuyển đổi dữ liệu thành chuỗi sử dụng cú pháp mẫu Jinja',
'template-transform': 'Chuyển đổi dữ liệu thành chuỗi bằng cú pháp mẫu Jinja',
'http-request': 'Cho phép gửi các yêu cầu máy chủ qua giao thức HTTP',
'variable-assigner': 'Gán biến trong các nhánh khác nhau vào cùng một biến để đạt được cấu hình thống nhất của các nút sau',
'variable-assigner': 'Tổng hợp các biến từ nhiều nhánh thành một biến duy nhất để cấu hình đồng nhất các nút cuối.',
'variable-aggregator': 'Tổng hợp các biến từ nhiều nhánh thành một biến duy nhất để cấu hình đồng nhất các nút cuối.',
'iteration': 'Thực hiện nhiều bước trên một đối tượng danh sách cho đến khi tất cả các kết quả được xuất ra.',
'parameter-extractor': 'Sử dụng LLM để trích xuất các tham số có cấu trúc từ ngôn ngữ tự nhiên để gọi công cụ hoặc yêu cầu HTTP.',
},
operator: {
zoomIn: 'Phóng to',
zoomOut: 'Thu nhỏ',
zoomTo50: 'Thu phóng đến 50%',
zoomTo100: 'Thu phóng đến 100%',
zoomToFit: 'Thu phóng vừa với cửa sổ',
zoomTo50: 'Phóng to 50%',
zoomTo100: 'Phóng to 100%',
zoomToFit: 'Phóng to vừa màn hình',
},
panel: {
userInputField: 'Trường nhập của người dùng',
changeBlock: 'Thay đổi Khối',
helpLink: 'Liên kết Trợ giúp',
userInputField: 'Trường đầu vào của người dùng',
changeBlock: 'Thay đổi khối',
helpLink: 'Liên kết trợ giúp',
about: 'Về',
createdBy: 'Được tạo bởi ',
createdBy: 'Tạo bởi ',
nextStep: 'Bước tiếp theo',
addNextStep: 'Thêm khối tiếp theo trong quy trình làm việc này',
selectNextStep: 'Chọn Khối Tiếp theo',
selectNextStep: 'Chọn khối tiếp theo',
runThisStep: 'Chạy bước này',
checklist: 'Danh sách kiểm tra',
checklistTip: 'Đảm bảo tất cả các vấn đề được giải quyết trước khi xuất bản',
checklistTip: 'Đảm bảo rằng tất cả các vấn đề đã được giải quyết trước khi xuất bản',
checklistResolved: 'Tất cả các vấn đề đã được giải quyết',
organizeBlocks: 'Sắp xếp các khối',
organizeBlocks: 'Tổ chức các khối',
change: 'Thay đổi',
},
nodes: {
common: {
outputVars: 'Biến đầu ra',
insertVarTip: 'Chèn Biến',
insertVarTip: 'Chèn biến',
memory: {
memory: 'Bộ nhớ',
memoryTip: 'Cài đặt bộ nhớ trò chuyện',
memoryTip: 'Cài đặt bộ nhớ cuộc trò chuyện',
windowSize: 'Kích thước cửa sổ',
conversationRoleName: 'Tên vai trò cuộc trò chuyện',
user: 'Tiền tố người dùng',
assistant: 'Tiền tố trợ lý',
},
memories: {
title: 'Các ký ức',
tip: 'Bộ nhớ trò chuyện',
title: 'Bộ nhớ',
tip: 'Bộ nhớ cuộc trò chuyện',
builtIn: 'Tích hợp sẵn',
},
},
start: {
required: 'bắt buộc',
inputField: 'Trường nhập',
inputField: 'Trường đầu vào',
builtInVar: 'Biến tích hợp sẵn',
outputVars: {
query: 'Đầu vào người dùng',
query: 'Đầu vào của người dùng',
memories: {
des: 'Lịch sử cuộc trò chuyện',
type: 'loại tin nhắn',
@@ -170,7 +190,7 @@ const translation = {
},
files: 'Danh sách tệp',
},
noVarTip: 'Thiết lập các đầu vào có thể được sử dụng trong Quy trình làm việc',
noVarTip: 'Đặt các đầu vào có thể sử dụng trong Quy trình làm việc',
},
end: {
outputs: 'Đầu ra',
@@ -179,7 +199,7 @@ const translation = {
variable: 'biến đầu ra',
},
type: {
'none': 'Không',
'none': 'Không',
'plain-text': 'Văn bản thuần',
'structured': 'Cấu trúc',
},
@@ -191,16 +211,16 @@ const translation = {
llm: {
model: 'mô hình',
variables: 'biến',
context: 'bối cảnh',
contextTooltip: 'Bạn có thể nhập Kiến thức dưới dạng bối cảnh',
notSetContextInPromptTip: 'Để bật tính năng bối cảnh, vui lòng điền vào biến ngữ cảnh trong PROMPT.',
prompt: 'nhắc nhở',
context: 'ngữ cảnh',
contextTooltip: 'Bạn có thể nhập Kiến thức làm ngữ cảnh',
notSetContextInPromptTip: 'Để kích hoạt tính năng ngữ cảnh, vui lòng điền biến ngữ cảnh vào PROMPT.',
prompt: 'prompt',
roleDescription: {
system: 'Đưa ra chỉ thị cấp cao cho cuộc trò chuyện',
user: 'Cung cấp chỉ thị, truy vấn hoặc bất kỳ đầu vào dựa trên văn bản nào cho mô hình',
assistant: 'Các phản hồi của mô hình dựa trên các tin nhắn của người dùng',
system: 'Cung cấp hướng dẫn cấp cao cho cuộc trò chuyện',
user: 'Cung cấp hướng dẫn, câu hỏi hoặc bất kỳ đầu vào văn bản nào cho mô hình',
assistant: 'Các phản hồi của mô hình dựa trên tin nhắn của người dùng',
},
addMessage: 'Thêm Tin nhắn',
addMessage: 'Thêm tin nhắn',
vision: 'tầm nhìn',
files: 'Tệp',
resolution: {
@@ -209,112 +229,110 @@ const translation = {
low: 'Thấp',
},
outputVars: {
output: 'Tạo nội dung',
usage: 'Thông tin Sử dụng Mô hình',
output: 'Nội dung được tạo',
usage: 'Thông tin sử dụng mô hình',
},
singleRun: {
variable: 'Biến',
},
sysQueryInUser: 'sys.query được yêu cầu trong tin nhắn người dùng.',
sysQueryInUser: 'sys.query trong tin nhắn của người dùng là bắt buộc',
},
knowledgeRetrieval: {
queryVariable: 'Biến Truy vấn',
queryVariable: 'Biến truy vấn',
knowledge: 'Kiến thức',
outputVars: {
output: 'Dữ liệu phân đoạn truy xuất',
output: 'Dữ liệu phân đoạn được truy xuất',
content: 'Nội dung phân đoạn',
title: 'Tiêu đề phân đoạn',
icon: 'Biểu tượng phân đoạn',
url: 'URL phân đoạn',
metadata: 'Các siêu dữ liệu khác',
metadata: 'Siêu dữ liệu khác',
},
},
http: {
inputVars: 'Biến đầu vào',
api: 'API',
apiPlaceholder: 'Nhập URL, nhập / chèn biến',
apiPlaceholder: 'Nhập URL, / để chèn biến',
notStartWithHttp: 'API phải bắt đầu bằng http:// hoặc https://',
key: 'Khóa',
value: 'Giá trị',
bulkEdit: 'Chỉnh sửa hàng loạt',
keyValueEdit: 'Chỉnh sửa Khóa-Giá trị',
keyValueEdit: 'Chỉnh sửa khóa-giá trị',
headers: 'Tiêu đề',
params: 'Tham số',
body: 'Nội dung',
outputVars: {
body: 'Nội dung Phản hồi',
statusCode: 'Mã trạng thái Phản hồi',
headers: 'Danh sách Tiêu đề Phản hồi JSON',
files: 'Danh sách Tệp',
body: 'Nội dung phản hồi',
statusCode: 'Mã trạng thái phản hồi',
headers: 'Danh sách tiêu đề phản hồi JSON',
files: 'Danh sách tệp',
},
authorization: {
'authorization': 'Xác thực',
'authorizationType': 'Loại Xác thực',
'no-auth': 'Không',
'authorization': 'Ủy quyền',
'authorizationType': 'Loại ủy quyền',
'no-auth': 'Không',
'api-key': 'Khóa API',
'auth-type': 'Loại Xác thực',
'auth-type': 'Loại xác thực',
'basic': 'Cơ bản',
'bearer': 'Bearer',
'custom': 'Tùy chỉnh',
'api-key-title': 'Khóa API',
'header': 'Tiêu đề',
},
insertVarPlaceholder: 'nhập \'/\' để chèn biến',
insertVarPlaceholder: ' \'/\' để chèn biến',
timeout: {
title: 'Hết thời gian',
connectLabel: 'Hết thời gian kết nối',
connectPlaceholder: 'Nhập thời gian kết nối bằng giây',
readLabel: 'Hết thời gian đọc',
readPlaceholder: 'Nhập thời gian đọc bằng giây',
writeLabel: 'Hết thời gian ghi',
writePlaceholder: 'Nhập thời gian ghi bằng giây',
title: 'Thời gian chờ',
connectLabel: 'Thời gian chờ kết nối',
connectPlaceholder: 'Nhập thời gian chờ kết nối tính bằng giây',
readLabel: 'Thời gian chờ đọc',
readPlaceholder: 'Nhập thời gian chờ đọc tính bằng giây',
writeLabel: 'Thời gian chờ ghi',
writePlaceholder: 'Nhập thời gian chờ ghi tính bằng giây',
},
},
code: {
inputVars: 'Biến đầu vào',
outputVars: 'Biến đầu ra',
advancedDependencies: 'Phụ thuộc Nâng cao',
advancedDependenciesTip: 'Thêm một số phụ thuộc đã được tải sẵn cần nhiều thời gian hơn để sử dụng hoặc không được tích hợp sẵn tại đây',
searchDependencies: 'Tìm Kiếm Phụ Thuộc',
advancedDependencies: 'Phụ thuộc nâng cao',
advancedDependenciesTip: 'Thêm một số phụ thuộc được tải trước mà tốn nhiều thời gian hoặc không phải là mặc định tại đây',
searchDependencies: 'Tìm kiếm phụ thuộc',
},
templateTransform: {
inputVars: 'Biến đầu vào',
code: 'Mã',
codeSupportTip: 'Chỉ hỗ trợ Jinja2',
outputVars: {
output: 'Nội dung đã chuyển đổi',
output: 'Nội dung chuyển đổi',
},
},
ifElse: {
if: 'Nếu',
else: 'Ngược lại',
elseDescription: 'Được sử dụng để xác định logic sẽ được thực hiện khi điều kiện if không được đáp ứng.',
elseDescription: 'Sử dụng để xác định logic sẽ thực hiện khi điều kiện if không được thỏa mãn.',
and: 'và',
or: 'hoặc',
operator: 'Toán tử',
notSetVariable: 'Vui lòng thiết lập biến trước',
notSetVariable: 'Vui lòng đặt biến trước',
comparisonOperator: {
'contains': 'chứa',
'not contains': 'không chứa',
'start with': 'bắt đầu bằng',
'end with': 'kết thúc bằng',
'is': 'là',
'is not': 'không phải là',
'is not': 'không là',
'empty': 'trống',
'not empty': 'không trống',
'null': 'null',
'not null': 'không null',
'null': 'null',
'not null': 'không null',
},
enterValue: 'Nhập giá trị',
addCondition: 'Thêm Điều kiện',
conditionNotSetup: 'Điều kiện CHƯA được thiết lập',
addCondition: 'Thêm điều kiện',
conditionNotSetup: 'Điều kiện chưa được thiết lập',
},
variableAssigner: {
title: 'Gán biến',
outputType: 'Loại đầu ra',
outputVarType: 'Loại Biến đầu ra',
varNotSet: 'Biến không được thiết lập',
varNotSet: 'Biến chưa được đặt',
noVarTip: 'Thêm các biến cần gán',
type: {
string: 'Chuỗi',
@@ -322,21 +340,25 @@ const translation = {
object: 'Đối tượng',
array: 'Mảng',
},
aggregationGroup: 'Nhóm tổng hợp',
aggregationGroupTip: 'Bật tính năng này cho phép trình tổng hợp biến tổng hợp nhiều bộ biến.',
addGroup: 'Thêm nhóm',
outputVars: {
output: 'Giá trị biến được gán',
varDescribe: 'Đầu ra {{groupName}}',
},
setAssignVariable: 'Đặt biến gán',
},
tool: {
toAuthorize: 'Để ủy quyền',
toAuthorize: 'y quyền',
inputVars: 'Biến đầu vào',
outputVars: {
text: 'nội dung được tạo ra bởi công cụ',
text: 'nội dung do công cụ tạo ra',
files: {
title: 'tệp được tạo ra bởi công cụ',
type: 'Loại hỗ trợ. Hiện chỉ hỗ trợ hình ảnh',
transfer_method: 'Phương pháp chuyn. Giá trị là remote_url hoặc local_file',
url: 'URL Hình ảnh',
upload_file_id: 'ID tệp tải lên',
title: 'tệp do công cụ tạo ra',
type: 'Loại hỗ trợ. Hiện tại chỉ hỗ trợ hình ảnh',
transfer_method: 'Phương pháp truyn. Giá trị là remote_url hoặc local_file',
url: 'URL hình ảnh',
upload_file_id: 'ID tệp đã tải lên',
},
},
},
@@ -344,20 +366,54 @@ const translation = {
model: 'mô hình',
inputVars: 'Biến đầu vào',
outputVars: {
className: 'Tên phân loại',
className: 'Tên lớp',
},
class: 'Lớp',
classNamePlaceholder: 'Viết tên lớp của bạn',
advancedSetting: 'Cài đặt Nâng cao',
topicName: 'Tên Chủ đề',
advancedSetting: 'Cài đặt nâng cao',
topicName: 'Tên chủ đề',
topicPlaceholder: 'Viết tên chủ đề của bạn',
addClass: 'Thêm Lớp',
addClass: 'Thêm lớp',
instruction: 'Hướng dẫn',
instructionTip: 'Nhập hướng dẫn bổ sung để giúp trình phân loại câu hỏi hiểu rõ hơn về cách phân loại câu hỏi.',
instructionPlaceholder: 'Viết hướng dẫn của bạn',
},
parameterExtractor: {
inputVar: 'Biến đầu vào',
extractParameters: 'Trích xuất tham số',
importFromTool: 'Nhập từ công cụ',
addExtractParameter: 'Thêm tham số trích xuất',
addExtractParameterContent: {
name: 'Tên',
namePlaceholder: 'Tên tham số trích xuất',
type: 'Loại',
typePlaceholder: 'Loại tham số trích xuất',
description: 'Mô tả',
descriptionPlaceholder: 'Mô tả tham số trích xuất',
required: 'Bắt buộc',
requiredContent: 'Bắt buộc chỉ được sử dụng làm tài liệu tham khảo cho suy luận mô hình và không phải để xác thực bắt buộc của đầu ra tham số.',
},
extractParametersNotSet: 'Tham số trích xuất chưa được thiết lập',
instruction: 'Hướng dẫn',
instructionTip: 'Nhập hướng dẫn bổ sung để giúp trình trích xuất tham số hiểu rõ hơn về cách trích xuất tham số.',
advancedSetting: 'Cài đặt nâng cao',
reasoningMode: 'Chế độ suy luận',
reasoningModeTip: 'Bạn có thể chọn chế độ suy luận phù hợp dựa trên khả năng của mô hình để phản hồi các hướng dẫn về việc gọi hàm hoặc prompt.',
isSuccess: 'Thành công. Khi thành công giá trị là 1, khi thất bại giá trị là 0.',
errorReason: 'Lý do lỗi',
},
iteration: {
deleteTitle: 'Xóa nút lặp?',
deleteDesc: 'Xóa nút lặp sẽ xóa tất cả các nút con',
input: 'Đầu vào',
output: 'Biến đầu ra',
iteration_one: '{{count}} Lặp',
iteration_other: '{{count}} Lặp',
currentIteration: 'Lặp hiện tại',
},
},
tracing: {
stopBy: 'Dừng lại bởi {{user}}',
stopBy: 'Dừng bởi {{user}}',
},
}