wangzhibo
10 天以前 220e4fab27b7f419b3e89e2f2d28ae789aac09d7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
// Gói ngôn ngữ tiếng Việt
export default {
  // TabBar
  'tabBar.home': 'Trang chủ',
  'tabBar.deviceConfig': 'Cấu hình mạng',
  'tabBar.settings': 'Hệ thống',
  // Tiêu đề trang cài đặt
  'settings.title': 'Cài đặt',
  // Trang đăng nhập
  'login.pageTitle': 'Đăng nhập',
  'login.navigationTitle': 'Đăng nhập',
  'login.fetchConfigError': 'Không thể tải cấu hình:',
  'login.selectLanguage': 'Chọn ngôn ngữ',
  'login.selectLanguageTip': 'Vi',
  'login.welcomeBack': 'Chào mừng trở lại',
  'login.pleaseLogin': 'Vui lòng đăng nhập vào tài khoản của bạn',
  'login.enterUsername': 'Vui lòng nhập tên đăng nhập',
  'login.enterPassword': 'Vui lòng nhập mật khẩu',
  'login.enterCaptcha': 'Vui lòng nhập mã xác minh',
  'login.loginButton': 'Đăng nhập',
  'login.loggingIn': 'Đang đăng nhập...',
  'login.noAccount': 'Đăng ký',
  'login.enterPhone': 'Vui lòng nhập số điện thoại',
  'login.selectCountry': 'Chọn quốc gia/vùng',
  'login.confirm': 'Xác nhận',
  'login.serverSetting': 'Cài đặt máy chủ',
  'login.requiredUsername': 'Tên đăng nhập không thể để trống',
  'login.requiredPassword': 'Mật khẩu không thể để trống',
  'login.requiredCaptcha': 'Mã xác minh không thể để trống',
  'login.requiredMobile': 'Vui lòng nhập số điện thoại hợp lệ',
  'login.captchaError': 'Lỗi mã xác minh đồ họa',
  'login.forgotPassword': 'Quên mật khẩu',
  'login.userAgreement': 'Thỏa thuận người dùng',
  'login.privacyPolicy': 'Chính sách bảo mật',
 
  // Trang đăng ký
  'register.pageTitle': 'Đăng ký',
  'register.createAccount': 'Tạo tài khoản',
  'register.enterUsername': 'Vui lòng nhập tên đăng nhập',
  'register.enterPassword': 'Vui lòng nhập mật khẩu',
  'register.confirmPassword': 'Vui lòng xác nhận mật khẩu',
  'register.enterPhone': 'Vui lòng nhập số điện thoại',
  'register.enterCode': 'Vui lòng nhập mã xác minh',
  'register.getCode': 'Lấy mã',
  'register.agreeTerms': 'Tôi đã đọc và đồng ý với',
  'register.terms': 'Thỏa thuận người dùng',
  'register.privacy': 'Chính sách bảo mật',
  'register.registerButton': 'Đăng ký',
  'register.registering': 'Đang đăng ký...',
  'register.haveAccount': 'Đã có tài khoản?',
  'register.loginNow': 'Đăng nhập ngay',
  'register.selectCountry': 'Chọn quốc gia/vùng',
  'register.confirm': 'Xác nhận',
  'register.captchaSendSuccess': 'Đã gửi mã xác minh thành công',
 
  // Trang chủ
  'home.pageTitle': 'Trang chủ',
  'home.createAgent': 'Tạo đại lý',
  'home.agentName': 'Đại lý',
  'home.modelInfo': 'Thông tin mô hình',
  'home.lastActive': 'Hoạt động lần cuối',
  'home.greeting': 'Xin chào Jarvis',
  'home.subtitle': 'Hãy cùng có',
  'home.wonderfulDay': 'một ngày tuyệt vời!',
  'home.emptyState': 'Không có đại lý nào',
  'home.deviceManagement': 'Quản lý thiết bị',
  'home.lastConversation': 'Cuộc trò chuyện cuối:',
  'home.delete': 'Xóa',
  'home.createFirstAgent': 'Nhấp vào nút + ở góc dưới bên phải để tạo đại lý đầu tiên của bạn',
  'home.dialogTitle': 'Tạo đại lý',
  'home.inputPlaceholder': 'ví dụ: Trợ lý chăm sóc khách hàng, Trợ lý giọng nói, Hỏi đáp kiến thức',
  'home.createError': 'Độ dài tên phải từ 1 đến 64 ký tự',
  'home.createNow': 'Tạo ngay',
  'home.deleteConfirmTitle': 'Xóa đại lý',
  'home.confirmDeleteAgent': 'Không thể hoàn tác sau khi xóa. Nhập tên đại lý "{agentName}" để xác nhận.',
  'home.deleteAgentNamePlaceholder': 'Nhập tên đại lý',
  'home.deleteAgentNameMismatch': 'Tên đại lý không khớp',
  'home.deleteAgentPasteForbidden': 'Vui lòng nhập thủ công tên đại lý. Không được dán.',
  'home.deleteAgentMissingInfo': 'Không thể xác nhận thông tin đại lý. Vui lòng tải lại rồi thử lại.',
  'home.deleteAgentSuccess': 'Đã xóa đại lý thành công',
  'home.justNow': 'Vừa xong',
  'home.minutesAgo': 'phút trước',
  'home.hoursAgo': 'giờ trước',
  'home.daysAgo': 'ngày trước',
  'home.languageModel': 'LLM',
  'home.voiceModel': 'TTS',
  'home.noBoundDevice': 'Chưa gắn thiết bị',
  'home.onlineCount': '{online}/{total} online',
 
  // Trang đại lý
  'agent.pageTitle': 'Đại lý',
  'agent.roleConfig': 'Cấu hình vai trò',
  'agent.deviceManagement': 'Quản lý thiết bị',
  'agent.chatHistory': 'Lịch sử trò chuyện',
  'agent.voiceprintManagement': 'Quản lý dấu giọng nói',
  'agent.parentTasks': 'Bài học',
  'agent.editTitle': 'Chỉnh sửa đại lý',
  'agent.toolsTitle': 'Chỉnh sửa tính năng',
  'agent.voiceActivityDetection': 'Phát hiện hoạt động giọng nói',
  'agent.speechRecognition': 'Nhận dạng giọng nói',
  'agent.largeLanguageModel': 'Mô hình ngôn ngữ lớn',
  'agent.save': 'Lưu',
  'agent.cancel': 'Hủy',
  // Trang chỉnh sửa đại lý
  'agent.basicInfo': 'Thông tin cơ bản',
  'agent.agentName': 'Tên đại lý',
  'agent.inputAgentName': 'Vui lòng nhập tên đại lý',
  'agent.roleMode': 'Chế độ vai trò',
  'agent.agentTag': 'Nhãn cơ thể thông minh',
  'agent.addAgentTag': 'Thêm thẻ',
  'agent.inputAgentTag': 'Vui lòng nhập thẻ cơ thể thông minh',
  'agent.contextProvider': 'Bối cảnh',
  'agent.contextProviderSuccess': 'Đã thêm thành công {count} nguồn.',
  'agent.contextProviderDocLink': 'Cách triển khai nguồn ngữ cảnh',
  'agent.editContextProvider': 'Chỉnh sửa nguồn',
  'agent.roleDescription': 'Mô tả vai trò',
  'agent.inputRoleDescription': 'Vui lòng nhập mô tả vai trò',
  'agent.modelConfig': 'Cấu hình mô hình',
  'agent.vad': 'Phát hiện hoạt động giọng nói',
  'agent.asr': 'Nhận dạng giọng nói',
  'agent.llm': 'Mô hình ngôn ngữ chính',
  'agent.slm': 'Mô hình tham số nhỏ',
  'agent.vllm': 'Mô hình ngôn ngữ thị giác',
  'agent.intent': 'Nhận dạng ý định',
  'agent.memory': 'Bộ nhớ',
  'agent.voiceSettings': 'Cài đặt giọng nói',
  'agent.tts': 'Văn bản thành giọng nói',
  'agent.voiceprint': 'Giọng nói đại lý',
  'agent.plugins': 'Plugin',
  'agent.editFunctions': 'Chỉnh sửa tính năng',
  'agent.historyMemory': 'Bộ nhớ lịch sử',
  'agent.memoryContent': 'Nội dung bộ nhớ',
  'agent.saving': 'Đang lưu...',
  'agent.saveSuccess': 'Lưu thành công',
  'agent.saveFail': 'Lưu thất bại',
  'agent.ttsOptionsLoadFailed': 'Không thể tải tùy chọn giọng nói. Cấu hình giọng nói trước đó đã được giữ lại.',
  'agent.loadFail': 'Tải thất bại',
  'agent.pleaseInputAgentName': 'Vui lòng nhập tên đại lý',
  'agent.pleaseInputRoleDescription': 'Vui lòng nhập mô tả vai trò',
  'agent.pleaseSelect': 'Vui lòng chọn',
  'agent.reportText': 'Gửi văn bản',
  'agent.reportTextVoice': 'Gửi văn bản+giọng nói',
  'agent.reportMode': 'Chế độ gửi',
  'agent.language': 'Ngôn ngữ',
  'agent.languageConfig': 'Giọng nói',
  'agent.ttsVolume': 'Âm lượng',
  'agent.ttsRate': 'Tốc độ',
  'agent.ttsPitch': 'Tone',
  'agent.volumeHint': '-100=Minimum, 0=Standard, 100=Maximum',
  'agent.speedHint': '-100=Slowest, 0=Standard, 100=Fastest',
  'agent.pitchHint': '-100=Lowest, 0=Standard, 100=Highest',
 
  // Lịch sử phiên bản đại lý
  'agentSnapshot.title': 'Lịch sử phiên bản',
  'agentSnapshot.empty': 'Chưa có phiên bản',
  'agentSnapshot.emptyTip': 'Cấu hình đã lưu sẽ xuất hiện ở đây',
  'agentSnapshot.version': 'Phiên bản',
  'agentSnapshot.createdAt': 'Thời gian lưu',
  'agentSnapshot.source': 'Nguồn',
  'agentSnapshot.changedFields': 'Thay đổi',
  'agentSnapshot.view': 'Xem',
  'agentSnapshot.restore': 'Khôi phục',
  'agentSnapshot.delete': 'Xóa',
  'agentSnapshot.loadMore': 'Tải thêm',
  'agentSnapshot.detailTitle': 'Chi tiết thay đổi',
  'agentSnapshot.restorePreviewTitle': 'Xem trước khôi phục',
  'agentSnapshot.confirmRestore': 'Xác nhận khôi phục',
  'agentSnapshot.currentVersion': 'Ảnh chụp mới nhất',
  'agentSnapshot.beforeChange': 'Trước',
  'agentSnapshot.afterChange': 'Sau',
  'agentSnapshot.beforeRestore': 'Trước khôi phục',
  'agentSnapshot.afterRestore': 'Sau khôi phục',
  'agentSnapshot.configValue': 'Giá trị cấu hình',
  'agentSnapshot.emptyValue': 'Không có',
  'agentSnapshot.secretRedacted': 'Đã ẩn khóa bí mật',
  'agentSnapshot.redactedValueChanged': 'Giá trị đã được ẩn nhưng thực sự đã thay đổi',
  'agentSnapshot.noChangedContent': 'Không có thay đổi để hiển thị',
  'agentSnapshot.recordedChange': 'Đã thay đổi khi ghi nhận',
  'agentSnapshot.noRestoreNeeded': 'Cấu hình hiện tại đã khớp với phiên bản này',
  'agentSnapshot.unsavedChangesTitle': 'Có thay đổi chưa lưu',
  'agentSnapshot.unsavedChangesWarning': 'Tiếp tục sẽ hủy các thay đổi chưa lưu trên trang này.',
  'agentSnapshot.discardAndRestore': 'Hủy thay đổi và khôi phục',
  'agentSnapshot.restoreConfirm': 'Khôi phục về phiên bản #{version}? Cấu hình hiện tại sẽ vẫn có trong lịch sử.',
  'agentSnapshot.restoreMemoryWarning': 'Khôi phục về phiên bản không có bộ nhớ sẽ xóa lịch sử trò chuyện của đại lý này. Vui lòng xác nhận rủi ro.',
  'agentSnapshot.restoreChatHistoryDestructiveWarning': 'Thao tác khôi phục này sẽ xóa vĩnh viễn lịch sử trò chuyện hiện có của tác nhân. Lịch sử trò chuyện không nằm trong bản chụp cấu hình và không thể khôi phục từ lịch sử phiên bản.',
  'agentSnapshot.restoreSuccess': 'Đã khôi phục phiên bản',
  'agentSnapshot.restoreFailed': 'Khôi phục phiên bản thất bại',
  'agentSnapshot.reloadAfterRestorePending': 'Đang tải lại cấu hình và thẻ đã khôi phục. Không thể lưu cho đến khi hoàn tất.',
  'agentSnapshot.reloadAfterRestoreFailed': 'Không thể tải lại cấu hình hoặc thẻ đã khôi phục. Chức năng lưu vẫn bị tắt để tránh dữ liệu cũ ghi đè kết quả khôi phục. Vui lòng thử lại.',
  'agentSnapshot.retryReload': 'Tải lại',
  'agentSnapshot.mutationBusy': 'Cấu hình đang được lưu hoặc tải lại. Hãy đợi hoàn tất trước khi mở lịch sử phiên bản hoặc khôi phục.',
  'agentSnapshot.deleteConfirm': 'Xóa phiên bản #{version}? Không thể hoàn tác thao tác này.',
  'agentSnapshot.deleteSuccess': 'Đã xóa phiên bản',
  'agentSnapshot.deleteFailed': 'Xóa phiên bản thất bại',
  'agentSnapshot.fetchFailed': 'Lấy lịch sử phiên bản thất bại',
  'agentSnapshot.detailFailed': 'Lấy chi tiết phiên bản thất bại',
  'agentSnapshot.correctWordCount': '{count} từ thay thế',
  'agentSnapshot.source.config': 'Lưu cấu hình',
  'agentSnapshot.source.current': 'Cấu hình hiện tại',
  'agentSnapshot.source.restore': 'Đã khôi phục',
  'agentSnapshot.source.initial': 'Phiên bản khởi tạo',
  'agentSnapshot.field.initial': 'Ảnh chụp ban đầu',
  'agentSnapshot.field.agentCode': 'Mã đại lý',
  'agentSnapshot.field.agentName': 'Biệt danh',
  'agentSnapshot.field.asrModelId': 'Nhận dạng giọng nói',
  'agentSnapshot.field.vadModelId': 'Phát hiện hoạt động giọng nói',
  'agentSnapshot.field.llmModelId': 'Mô hình ngôn ngữ chính',
  'agentSnapshot.field.slmModelId': 'Mô hình ngôn ngữ nhỏ',
  'agentSnapshot.field.vllmModelId': 'Mô hình thị giác',
  'agentSnapshot.field.ttsModelId': 'Tổng hợp giọng nói',
  'agentSnapshot.field.ttsVoiceId': 'Giọng',
  'agentSnapshot.field.ttsLanguage': 'Ngôn ngữ',
  'agentSnapshot.field.ttsVolume': 'Âm lượng',
  'agentSnapshot.field.ttsRate': 'Tốc độ',
  'agentSnapshot.field.ttsPitch': 'Tone',
  'agentSnapshot.field.memModelId': 'Chế độ bộ nhớ',
  'agentSnapshot.field.intentModelId': 'Nhận dạng ý định',
  'agentSnapshot.field.chatHistoryConf': 'Cấu hình lịch sử chat',
  'agentSnapshot.field.systemPrompt': 'Mô tả vai trò',
  'agentSnapshot.field.summaryMemory': 'Bộ nhớ',
  'agentSnapshot.field.langCode': 'Mã ngôn ngữ',
  'agentSnapshot.field.language': 'Ngôn ngữ tương tác',
  'agentSnapshot.field.sort': 'Sắp xếp',
  'agentSnapshot.field.functions': 'Plugin',
  'agentSnapshot.field.contextProviders': 'Nguồn ngữ cảnh',
  'agentSnapshot.field.correctWordFileIds': 'Từ thay thế',
  'agentSnapshot.field.tagNames': 'Nhãn đại lý',
  'agentSnapshot.chatHistoryConf.none': 'Không ghi lịch sử chat',
  'agentSnapshot.chatHistoryConf.text': 'Gửi văn bản',
  'agentSnapshot.chatHistoryConf.textVoice': 'Gửi văn bản và giọng nói',
  'agentSnapshot.model.Memory_nomem': 'Không có bộ nhớ',
  'agentSnapshot.model.Memory_mem_local_short': 'Bộ nhớ ngắn hạn cục bộ',
  'agentSnapshot.model.Memory_mem0ai': 'Bộ nhớ Mem0AI',
  'agentSnapshot.model.Memory_mem_report_only': 'Chỉ gửi báo cáo',
  'agentSnapshot.model.Intent_nointent': 'Không nhận dạng ý định',
  'agentSnapshot.model.Intent_intent_llm': 'Nhận dạng ý định LLM ngoài',
  'agentSnapshot.model.Intent_function_call': 'Gọi hàm bằng LLM',
 
  // Context provider dialog related
  'contextProviderDialog.title': 'Chỉnh sửa nguồn',
  'contextProviderDialog.noContextApi': 'Không có API ngữ cảnh',
  'contextProviderDialog.add': 'Thêm',
  'contextProviderDialog.apiUrl': 'Địa chỉ API',
  'contextProviderDialog.apiUrlPlaceholder': 'http://api.example.com/data',
  'contextProviderDialog.requestHeaders': 'Header yêu cầu',
  'contextProviderDialog.headerKeyPlaceholder': 'Khóa',
  'contextProviderDialog.headerValuePlaceholder': 'Giá trị',
  'contextProviderDialog.noHeaders': 'Không có Headers',
  'contextProviderDialog.addHeader': 'Thêm Header',
  'contextProviderDialog.cancel': 'Hủy bỏ',
  'contextProviderDialog.confirm': 'Xác nhận',
 
  // Manual add device dialog related
  'manualAddDeviceDialog.title': 'Thêm thiết bị thủ công',
  'manualAddDeviceDialog.deviceType': 'Loại thiết bị',
  'manualAddDeviceDialog.deviceTypePlaceholder': 'Vui lòng chọn loại thiết bị',
  'manualAddDeviceDialog.firmwareVersion': 'Phiên bản firmware',
  'manualAddDeviceDialog.firmwareVersionPlaceholder': 'Vui lòng nhập phiên bản firmware',
  'manualAddDeviceDialog.macAddress': 'Địa chỉ Mac',
  'manualAddDeviceDialog.macAddressPlaceholder': 'Vui lòng nhập địa chỉ Mac',
  'manualAddDeviceDialog.confirm': 'Xác nhận',
  'manualAddDeviceDialog.cancel': 'Hủy bỏ',
  'manualAddDeviceDialog.requiredMacAddress': 'Vui lòng nhập địa chỉ Mac',
  'manualAddDeviceDialog.invalidMacAddress': 'Vui lòng nhập đúng định dạng địa chỉ Mac, ví dụ: 00:1A:2B:3C:4D:5E',
  'manualAddDeviceDialog.requiredDeviceType': 'Vui lòng chọn loại thiết bị',
  'manualAddDeviceDialog.requiredFirmwareVersion': 'Vui lòng nhập phiên bản firmware',
  'manualAddDeviceDialog.getFirmwareTypeFailed': 'Không thể lấy loại firmware',
  'manualAddDeviceDialog.addSuccess': 'Đã thêm thiết bị thành công',
  'manualAddDeviceDialog.addFailed': 'Thêm thất bại',
  'manualAddDeviceDialog.bindWithCode': 'Liên kết bằng mã xác minh 6 chữ số',
 
  // Trang lịch sử trò chuyện
  'chatHistory.getChatSessions': 'Lấy danh sách phiên trò chuyện',
  'chatHistory.noSelectedAgent': 'Chưa chọn đại lý',
  'chatHistory.getChatSessionsFailed': 'Không thể lấy danh sách phiên trò chuyện:',
  'chatHistory.unknownTime': 'Thời gian không xác định',
  'chatHistory.justNow': 'Vừa xong',
  'chatHistory.minutesAgo': '{minutes} phút trước',
  'chatHistory.hoursAgo': '{hours} giờ trước',
  'chatHistory.daysAgo': '{days} ngày trước',
  'chatHistory.conversationRecord': 'Bản ghi trò chuyện',
  'chatHistory.totalChats': 'Tổng cộng {count} cuộc trò chuyện',
  'chatHistory.loading': 'Đang tải...',
  'chatHistory.noMoreData': 'Không còn dữ liệu',
  'chatHistory.noChatRecords': 'Không có bản ghi trò chuyện',
  'chatHistory.chatRecordsDescription': 'Bản ghi trò chuyện với đại lý sẽ hiển thị ở đây',
  // Trang chi tiết lịch sử trò chuyện
  'chatHistory.pageTitle': 'Chi tiết trò chuyện',
  'chatHistory.assistantName': 'Trợ lý thông minh',
  'chatHistory.userName': 'Người dùng',
  'chatHistory.aiAssistantName': 'Trợ lý AI',
  'chatHistory.loadFailed': 'Không thể tải lịch sử trò chuyện',
  'chatHistory.parameterError': 'Lỗi tham số trang',
  'chatHistory.invalidAudioId': 'ID âm thanh không hợp lệ',
  'chatHistory.audioPlayFailed': 'Phát âm thanh thất bại',
  'chatHistory.playAudioFailed': 'Không thể phát âm thanh',
 
  // Trang quản lý thiết bị
  'device.pageTitle': 'Quản lý thiết bị',
  'device.noDevices': 'Không có thiết bị nào',
  'device.macAddress': 'Địa chỉ MAC',
  'device.firmwareVersion': 'Phiên bản firmware',
  'device.lastConnected': 'Cuộc trò chuyện cuối',
  'device.otaUpdate': 'Cập nhật OTA',
  'device.unbind': 'Hủy liên kết',
  'device.confirmUnbind': 'Xác nhận',
  'device.bindDevice': 'Liên kết thiết bị mới',
  'device.deviceType': 'Loại thiết bị',
  'device.loading': 'Đang tải...',
  'device.neverConnected': 'Chưa kết nối',
  'device.checkingOnline': 'Đang kiểm tra trạng thái thiết bị…',
  'device.online': 'Thiết bị online',
  'device.offline': 'Thiết bị offline',
  'device.onlineHint': 'Có thể gửi nhiệm vụ tức thì và theo lịch.',
  'device.offlineHint': 'Không gửi được nhiệm vụ. Vẫn xem được lịch sử trò chuyện.',
  'device.justNow': 'Vừa xong',
  'device.minutesAgo': '{minutes} phút trước',
  'device.hoursAgo': '{hours} giờ trước',
  'device.daysAgo': '{days} ngày trước',
  'device.otaAutoUpdateEnabled': 'Đã bật cập nhật OTA tự động',
  'device.otaAutoUpdateDisabled': 'Đã tắt cập nhật OTA tự động',
  'device.operationFailed': 'Thao tác thất bại, vui lòng thử lại',
  'device.deviceUnbound': 'Đã hủy liên kết thiết bị',
  'device.unbindFailed': 'Hủy liên kết thất bại, vui lòng thử lại',
  'device.unbindDevice': 'Hủy liên kết thiết bị',
  'device.confirmUnbindDevice': 'Bạn có chắc chắn muốn hủy liên kết thiết bị "{macAddress}"?',
  'device.cancel': 'Hủy',
  'device.noDevice': 'Không có thiết bị',
  'device.pleaseSelectAgent': 'Vui lòng chọn một đại lý trước',
  'device.deviceBindSuccess': 'Liên kết thiết bị thành công!',
  'device.bindFailed': 'Liên kết thất bại, vui lòng kiểm tra mã xác minh có đúng không',
  'device.enterDeviceCode': 'Vui lòng nhập mã xác minh thiết bị',
  'device.bindNow': 'Liên kết ngay',
  'device.lastConnection': 'Kết nối cuối',
  'device.clickToBindFirstDevice': 'Nhấp vào nút + ở góc dưới bên phải để liên kết thiết bị đầu tiên của bạn',
 
  // Chung
  'common.success': 'Thành công',
  'common.fail': 'Thất bại',
  'common.loading': 'Đang tải...',
  'common.confirm': 'Xác nhận',
  'common.cancel': 'Hủy',
  'common.delete': 'Xóa',
  'common.edit': 'Chỉnh sửa',
  'common.add': 'Thêm',
  'common.pleaseSelect': 'Vui lòng chọn',
  'common.unknownError': 'Lỗi không xác định',
  'common.networkError': 'Lỗi mạng',
 
  // Trang khôi phục mật khẩu
  'retrievePassword.title': 'Đặt lại mật khẩu',
  'retrievePassword.subtitle': 'Khôi phục mật khẩu tài khoản qua số điện thoại',
  'retrievePassword.mobileRequired': 'Vui lòng nhập số điện thoại',
  'retrievePassword.inputCorrectMobile': 'Vui lòng nhập số điện thoại hợp lệ',
  'retrievePassword.captchaRequired': 'Vui lòng nhập mã xác minh đồ họa',
  'retrievePassword.mobileCaptchaRequired': 'Vui lòng nhập mã xác minh SMS',
  'retrievePassword.newPasswordRequired': 'Vui lòng nhập mật khẩu mới',
  'retrievePassword.confirmNewPasswordRequired': 'Vui lòng xác nhận mật khẩu mới',
  'retrievePassword.passwordsNotMatch': 'Mật khẩu không khớp',
  'retrievePassword.mobilePlaceholder': 'Vui lòng nhập số điện thoại',
  'retrievePassword.captchaPlaceholder': 'Vui lòng nhập mã xác minh đồ họa',
  'retrievePassword.mobileCaptchaPlaceholder': 'Vui lòng nhập mã xác minh SMS',
  'retrievePassword.newPasswordPlaceholder': 'Vui lòng nhập mật khẩu mới',
  'retrievePassword.confirmNewPasswordPlaceholder': 'Vui lòng xác nhận mật khẩu mới',
  'retrievePassword.getMobileCaptcha': 'Lấy mã',
  'retrievePassword.captchaSendSuccess': 'Đã gửi mã xác minh thành công',
  'retrievePassword.passwordUpdateSuccess': 'Đặt lại mật khẩu thành công',
  'retrievePassword.resetButton': 'Đặt lại mật khẩu',
  'retrievePassword.goToLogin': 'Quay lại đăng nhập',
 
  // Thông báo lỗi liên quan đến mã hóa SM2
  'sm2.publicKeyNotConfigured': 'Khóa công khai SM2 chưa được cấu hình, vui lòng liên hệ quản trị viên',
  'sm2.encryptionFailed': 'Mã hóa mật khẩu thất bại',
  'sm2.keyGenerationFailed': 'Tạo cặp khóa thất bại',
  'sm2.invalidPublicKey': 'Định dạng khóa công khai không hợp lệ',
  'sm2.encryptionError': 'Đã xảy ra lỗi khi mã hóa',
  'sm2.publicKeyRetry': 'Đang thử lấy lại khóa công khai...',
  'sm2.publicKeyRetryFailed': 'Thử lấy lại khóa công khai thất bại',
 
  // Trang dấu giọng nói
  'voiceprint.noSelectedAgent': 'Chưa chọn đại lý',
  'voiceprint.pleaseSelectAgent': 'Vui lòng chọn một đại lý trước',
  'voiceprint.fetchHistoryFailed': 'Không thể tải lịch sử trò chuyện',
  'voiceprint.clickToSelectVector': 'Nhấp để chọn vector dấu giọng nói',
  'voiceprint.pleaseInputName': 'Vui lòng nhập tên',
  'voiceprint.pleaseSelectVector': 'Vui lòng chọn vector dấu giọng nói',
  'voiceprint.addSuccess': 'Thêm thành công',
  'voiceprint.addFailed': 'Thêm người nói thất bại',
  'voiceprint.editSuccess': 'Chỉnh sửa thành công',
  'voiceprint.editFailed': 'Chỉnh sửa người nói thất bại',
  'voiceprint.deleteConfirmMsg': 'Bạn có chắc chắn muốn xóa người nói này?',
  'voiceprint.deleteConfirmTitle': 'Xác nhận xóa',
  'voiceprint.deleteSuccess': 'Xóa thành công',
  'voiceprint.loading': 'Đang tải...',
  'voiceprint.delete': 'Xóa',
  'voiceprint.emptyTitle': 'Không có dữ liệu dấu giọng nói',
  'voiceprint.emptyDesc': 'Nhấp vào nút + ở góc dưới bên phải để thêm người nói đầu tiên của bạn',
  'voiceprint.addSpeaker': 'Thêm người nói',
  'voiceprint.voiceVector': 'Vector dấu giọng nói',
  'voiceprint.name': 'Tên',
  'voiceprint.description': 'Mô tả',
  'voiceprint.pleaseInputDescription': 'Vui lòng nhập mô tả',
  'voiceprint.cancel': 'Hủy',
  'voiceprint.save': 'Lưu',
  'voiceprint.editSpeaker': 'Chỉnh sửa người nói',
  'voiceprint.selectVector': 'Chọn vector dấu giọng nói',
  'voiceprint.voiceprintInterfaceNotConfigured': 'Giao diện dấu giọng nói chưa được cấu hình',
 
  // Trang cài đặt
  'settings.pageTitle': 'Cài đặt',
  'settings.navigationTitle': 'Cài đặt',
  'settings.networkSettings': 'Cài đặt mạng',
  'settings.serverApiUrl': 'URL API máy chủ',
  'settings.validServerUrl': 'Vui lòng nhập địa chỉ máy chủ hợp lệ (bắt đầu bằng http hoặc https và kết thúc bằng /xiaozhi)',
  'settings.saveSettings': 'Lưu cài đặt',
  'settings.resetDefault': 'Đặt lại mặc định',
  'settings.restartApp': 'Khởi động lại ứng dụng',
  'settings.restartNow': 'Khởi động lại ngay',
  'settings.restartLater': 'Để sau',
  // Về chúng tôi
  'settings.aboutApp': 'Về Bảng điều khiển XiaoZhi',
  'settings.aboutContent': 'Bảng điều khiển XiaoZhi\n\nỨng dụng quản lý di động đa nền tảng được xây dựng với Vue.js 3 + uni-app, cung cấp quản lý thiết bị, cấu hình đại lý và các chức năng khác cho phần cứng thông minh xiaozhi ESP32.\n\n© 2025 xiaozhi-esp32-server {version}',
  'settings.restartSuccess': 'Đã lưu, bạn có thể tự khởi động lại ứng dụng sau',
  'settings.serverUrlSavedAndCacheCleared': 'Đã lưu URL máy chủ và xóa bộ nhớ cache',
  'settings.resetToDefaultAndCacheCleared': 'Đã đặt lại mặc định và xóa bộ nhớ cache',
  'settings.resetSuccess': 'Đặt lại thành công',
  'settings.enterServerUrl': 'Vui lòng nhập URL máy chủ',
  'settings.clearCacheFailed': 'Không thể xóa bộ nhớ cache',
  'settings.cacheManagement': 'Quản lý bộ nhớ cache',
  'settings.totalCacheSize': 'Tổng kích thước bộ nhớ cache',
  'settings.appDataSize': 'Tổng kích thước dữ liệu ứng dụng',
  'settings.cacheClear': 'Xóa bộ nhớ cache',
  'settings.clearAllCache': 'Xóa tất cả dữ liệu bộ nhớ cache',
  'settings.clearCache': 'Xóa bộ nhớ cache',
  'settings.modifyWillClearCache': 'Thay đổi sẽ xóa bộ nhớ cache',
  'settings.appInfo': 'Thông tin ứng dụng',
  'settings.aboutUs': 'Về chúng tôi',
  'settings.appVersion': 'Phiên bản ứng dụng & Thông tin nhóm',
  'settings.confirmClear': 'Xác nhận xóa',
  'settings.confirmClearMessage': 'Bạn có chắc chắn muốn xóa toàn bộ bộ nhớ cache? Điều này sẽ xóa tất cả dữ liệu bao gồm trạng thái đăng nhập và yêu cầu đăng nhập lại.',
  'settings.cacheCleared': 'Đã xóa bộ nhớ cache thành công, đang chuyển hướng đến trang đăng nhập',
  'settings.languageSettings': 'Cài đặt ngôn ngữ',
  'settings.language': 'Ngôn ngữ',
  'settings.selectLanguage': 'Chọn ngôn ngữ',
  'settings.languageChanged': 'Đã thay đổi ngôn ngữ thành công',
 
  // Thông báo
  'message.loginSuccess': 'Đăng nhập thành công!',
  'message.loginFail': 'Đăng nhập thất bại',
  'message.registerSuccess': 'Đăng ký thành công',
  'message.registerFail': 'Đăng ký thất bại',
  'message.saveSuccess': 'Lưu thành công',
  'message.saveFail': 'Lưu thất bại',
  'message.deleteSuccess': 'Xóa thành công',
  'message.deleteFail': 'Xóa thất bại',
  'message.bindSuccess': 'Liên kết thành công',
  'message.bindFail': 'Liên kết thất bại',
  'message.unbindSuccess': 'Hủy liên kết thành công',
  'message.unbindFail': 'Hủy liên kết thất bại',
  'message.networkError': 'Lỗi mạng, vui lòng kiểm tra kết nối',
  'message.serverError': 'Lỗi máy chủ, vui lòng thử lại sau',
  'message.invalidAddress': 'Địa chỉ có thể không hợp lệ. Vui lòng kiểm tra xem máy chủ đã khởi động hay kết nối mạng chưa; Có thể không gửi được yêu cầu do lỗi giao thức HTTPS',
  'message.languageChanged': 'Đã thay đổi ngôn ngữ',
  'message.passwordError': 'Lỗi tài khoản hoặc mật khẩu',
  'message.phoneRegistered': 'Số điện thoại này đã được đăng ký',
 
  // Trang công cụ đại lý
  'agent.tools.pageTitle': 'Công cụ đại lý',
  'agent.tools.unselected': 'Chưa chọn',
  'agent.tools.selected': 'Đã chọn',
  'agent.tools.noMorePlugins': 'Không còn plugin',
  'agent.tools.pleaseSelectPlugin': 'Vui lòng chọn chức năng plugin',
  'agent.tools.builtInPlugins': 'Plugin tích hợp',
  'agent.tools.mcpAccessPoint': 'Điểm truy cập MCP',
  'agent.tools.copy': 'Sao chép',
  'agent.tools.noTools': 'Không có công cụ nào',
  'agent.tools.parameterConfig': 'Cấu hình',
  'agent.tools.noParamsNeeded': 'Không cần tham số',
  'agent.tools.pleaseInput': 'Vui lòng nhập',
  'agent.tools.inputOneItemPerLine': 'Nhập một mục mỗi dòng',
  'agent.tools.pleaseInputValidJson': 'Vui lòng nhập định dạng JSON hợp lệ',
  'agent.tools.enableFunction': 'Bật chức năng',
  'agent.tools.toggleFunction': 'Bật hoặc tắt chức năng này',
  'agent.tools.jsonFormatError': 'Lỗi định dạng JSON',
  'agent.tools.noMcpAddressToCopy': 'Không có địa chỉ MCP để sao chép',
  'agent.tools.mcpAddressCopied': 'Đã sao chép địa chỉ MCP vào bộ nhớ tạm',
  'agent.tools.copyFailed': 'Sao chép thất bại, vui lòng thử lại',
  'agent.tools.defaultValue': 'Giá trị mặc định',
  'agent.tools.notSelected': 'Chưa chọn',
  'agent.tools.clickToConfigure': 'Nhấp để cấu hình',
  'agent.tools.mcpEndpoint': 'Điểm cuối MCP',
  'agent.tools.eachLineOneItem': 'Nhập một mục mỗi dòng',
 
  // Trang cấu hình thiết bị
  'deviceConfig.pageTitle': 'Cấu hình thiết bị',
  'deviceConfig.wifiConfig': 'Cấu hình WiFi',
  'deviceConfig.ultrasonicConfig': 'Cấu hình siêu âm',
  'deviceConfig.selectConfigMethod': 'Chọn phương pháp cấu hình',
  'deviceConfig.networkConfig': 'Cấu hình mạng',
  'deviceConfig.selectedNetwork': 'Mạng đã chọn',
  'deviceConfig.signal': 'Tín hiệu',
  'deviceConfig.openNetwork': 'Mạng mở',
  'deviceConfig.encryptedNetwork': 'Mạng mã hóa',
  'deviceConfig.password': 'Mật khẩu',
  'deviceConfig.pleaseEnterPassword': 'Vui lòng nhập mật khẩu WiFi',
  'deviceConfig.startConfig': 'Bắt đầu cấu hình',
  'deviceConfig.connectToXiaozhiHotspot': 'Vui lòng kết nối với điểm phát sóng xiaozhi trước',
  'deviceConfig.detecting': 'Đang phát hiện...',
  'deviceConfig.reDetect': 'Phát hiện lại',
  'deviceConfig.alreadyConnected': 'Đã kết nối với điểm phát sóng xiaozhi',
  'deviceConfig.refreshStatus': 'Làm mới trạng thái',
  'deviceConfig.wifiNetworks': 'Mạng WiFi',
  'deviceConfig.selectWifiNetwork': 'Chọn mạng WiFi',
  'deviceConfig.refreshScan': 'Làm mới quét',
  'deviceConfig.noWifiNetworks': 'Không có mạng WiFi nào',
  'deviceConfig.clickToRefreshScan': 'Vui lòng nhấp Làm mới quét',
  'deviceConfig.signalStrong': 'Tín hiệu mạnh',
  'deviceConfig.signalGood': 'Tín hiệu tốt',
  'deviceConfig.signalFair': 'Tín hiệu trung bình',
  'deviceConfig.signalWeak': 'Tín hiệu yếu',
  'deviceConfig.channel': 'Kênh',
  'deviceConfig.about': 'khoảng',
  'deviceConfig.seconds': 'giây',
  'deviceConfig.generating': 'Đang tạo...',
  'deviceConfig.playing': 'Đang phát...',
  'deviceConfig.generateAndPlaySoundWave': 'Tạo và phát sóng âm',
  'deviceConfig.playSoundWave': 'Phát sóng âm',
  'deviceConfig.stopPlaying': 'Dừng phát',
  'deviceConfig.autoLoopPlaySoundWave': 'Tự động lặp phát sóng âm',
  'deviceConfig.configAudioFile': 'Tệp âm thanh cấu hình',
  'deviceConfig.duration': 'Thời lượng',
  'deviceConfig.ultrasonicConfigInstructions': 'Hướng dẫn cấu hình siêu âm',
  'deviceConfig.ensureWifiNetworkSelectedAndPasswordEntered': 'Đảm bảo mạng WiFi được chọn và mật khẩu đã nhập',
  'deviceConfig.clickGenerateAndPlaySoundWave': 'Nhấp Tạo và phát sóng âm, hệ thống sẽ mã hóa thông tin cấu hình thành âm thanh',
  'deviceConfig.bringPhoneCloseToXiaozhiDevice': 'Đưa điện thoại lại gần thiết bị xiaozhi (khoảng cách 1-2 mét)',
  'deviceConfig.duringAudioPlaybackXiaozhiWillReceive': 'Trong khi phát âm thanh, xiaozhi sẽ nhận và giải mã thông tin cấu hình',
  'deviceConfig.afterConfigSuccessDeviceWillConnect': 'Sau khi cấu hình thành công, thiết bị sẽ tự động kết nối với mạng WiFi',
  'deviceConfig.usesAfskModulation': 'Sử dụng công nghệ điều chế AFSK, truyền dữ liệu qua tần số 1800Hz và 1500Hz',
  'deviceConfig.ensureModeratePhoneVolume': 'Vui lòng đảm bảo âm lượng điện thoại vừa phải để tránh nhiễu tiếng ồn môi trường',
  'deviceConfig.generatingUltrasonicConfigAudio': 'Đang tạo âm thanh cấu hình siêu âm',
  'deviceConfig.configData': 'Dữ liệu cấu hình',
  'deviceConfig.dataBytesLength': 'Độ dài byte dữ liệu',
  'deviceConfig.bitStreamLength': 'Độ dài luồng bit',
  'deviceConfig.base64Length': 'Độ dài base64',
  'deviceConfig.audioFileTooLarge': 'Tệp âm thanh quá lớn, vui lòng rút ngắn SSID hoặc độ dài mật khẩu',
  'deviceConfig.audioGenerationSuccess': 'Tạo âm thanh thành công',
  'deviceConfig.samplePoints': 'Điểm mẫu',
  'deviceConfig.soundWaveGenerationSuccess': 'Tạo sóng âm thành công',
  'deviceConfig.audioGenerationFailed': 'Tạo âm thanh thất bại',
  'deviceConfig.soundWaveGenerationFailed': 'Tạo sóng âm thất bại',
  'deviceConfig.pleaseGenerateAudioFirst': 'Vui lòng tạo âm thanh trước',
  'deviceConfig.startPlayingUltrasonicConfigAudio': 'Bắt đầu phát âm thanh cấu hình siêu âm',
  'deviceConfig.ultrasonicAudioStartedPlaying': 'Đã bắt đầu phát âm thanh siêu âm',
  'deviceConfig.startPlayingConfigSoundWave': 'Đã bắt đầu phát sóng âm cấu hình',
  'deviceConfig.ultrasonicAudioPlaybackEnded': 'Kết thúc phát âm thanh siêu âm',
  'deviceConfig.audioPlaybackFailed': 'Phát âm thanh thất bại',
  'deviceConfig.audioResourceBusy': 'Tài nguyên âm thanh bận, vui lòng thử lại sau',
  'deviceConfig.audioFormatNotSupported': 'Định dạng âm thanh không được hỗ trợ, có thể là vấn đề URI dữ liệu',
  'deviceConfig.audioFileError': 'Lỗi tệp âm thanh',
  'deviceConfig.cleaningUpAudioContext': 'Đang dọn dẹp ngữ cảnh âm thanh',
  'deviceConfig.cleaningUpAudioContextFailed': 'Không thể dọn dẹp ngữ cảnh âm thanh',
  'deviceConfig.stoppedPlayingUltrasonicAudio': 'Đã dừng phát âm thanh siêu âm',
  'deviceConfig.stoppedPlaying': 'Đã dừng phát',
  'deviceConfig.configMethod': 'Phương pháp cấu hình',
  'deviceConfig.enterWifiPassword': 'Vui lòng nhập mật khẩu WiFi',
  'deviceConfig.xiaozhi': 'xiaozhi',
  'deviceConfig.connectXiaozhiHotspot': 'Vui lòng kết nối với điểm phát sóng xiaozhi',
  'deviceConfig.wifiScanResponse': 'Phản hồi quét WiFi',
  'deviceConfig.scanSuccess': 'Quét thành công',
  'deviceConfig.networks': 'mạng',
  'deviceConfig.wifiScanFailed': 'Quét WiFi thất bại',
  'deviceConfig.scanFailedCheckConnection': 'Quét thất bại, vui lòng kiểm tra kết nối',
  'deviceConfig.checking': 'Đang kiểm tra',
  'deviceConfig.reCheck': 'Kiểm tra lại',
  'deviceConfig.connectedXiaozhiHotspot': 'Đã kết nối với điểm phát sóng xiaozhi',
  'deviceConfig.wifiNetwork': 'Mạng WiFi',
  'deviceConfig.wifiPassword': 'Mật khẩu WiFi',
  'deviceConfig.scanning': 'Đang quét',
  'deviceConfig.cancel': 'Hủy',
  'deviceConfig.clickRefreshScan': 'Vui lòng nhấp Làm mới quét',
  'deviceConfig.esp32ConnectionCheckFailed': 'Kiểm tra kết nối ESP32 thất bại',
  'deviceConfig.startWifiConfig': 'Đang bắt đầu cấu hình WiFi',
  'deviceConfig.configSuccess': 'Cấu hình thành công',
  'deviceConfig.deviceWillConnectTo': 'Thiết bị sẽ kết nối với',
  'deviceConfig.deviceWillRestart': 'Thiết bị sẽ khởi động lại',
  'deviceConfig.pleaseDisconnectXiaozhiHotspot': 'Vui lòng ngắt kết nối khỏi điểm phát sóng xiaozhi',
  'deviceConfig.configFailed': 'Cấu hình thất bại',
  'deviceConfig.wifiConfigFailed': 'Cấu hình WiFi thất bại',
  'deviceConfig.pleaseCheckNetworkConnection': 'Vui lòng kiểm tra kết nối mạng',
  'deviceConfig.startWifiConfigButton': 'Bắt đầu cấu hình',
  'deviceConfig.configuring': 'Đang cấu hình...',
  'deviceConfig.wifiConfigInstructions': 'Hướng dẫn cấu hình WiFi',
  'deviceConfig.phoneConnectXiaozhiHotspot': 'Điện thoại kết nối với điểm phát sóng xiaozhi',
  'deviceConfig.selectTargetWifiNetwork': 'Chọn mạng WiFi mục tiêu',
  'deviceConfig.enterWifiPasswordIfNeeded': 'Nhập mật khẩu WiFi nếu cần',
  'deviceConfig.clickStartConfigAndWait': 'Nhấp Bắt đầu cấu hình và chờ',
  'deviceConfig.afterConfigSuccessDeviceWillRestart': 'Sau khi cấu hình thành công, thiết bị sẽ tự động khởi động lại',
  'deviceConfig.audioPlaybackError': 'Lỗi phát âm thanh',
  'deviceConfig.playbackFailed': 'Phát thất bại',
 
  // Voiceprint page
  'voiceprint.audioNotExist': 'Âm thanh không tồn tại',
  'voiceprint.getAudioFailed': 'Không thể lấy âm thanh',
  'voiceprint.audioPlayFailed': 'Phát âm thanh thất bại',
 
  'parentTask.pageTitle': 'Bài học',
  'parentTask.createTitle': 'Tạo bài học',
  'parentTask.editTitle': 'Sửa bài học',
  'parentTask.device': 'Thiết bị',
  'parentTask.selectDevice': 'Chọn thiết bị',
  'parentTask.bindDeviceFirst': 'Hãy gắn thiết bị trước',
  'parentTask.runningSection': 'Đang chạy',
  'parentTask.scheduledSection': 'Lịch trình',
  'parentTask.running': 'Đang chạy',
  'parentTask.emptySchedule': 'Chưa có lịch. Bấm + để tạo nghe rộng, đọc theo hoặc trò chuyện.',
  'parentTask.startNow': 'Bắt đầu ngay',
  'parentTask.saveSchedule': 'Lưu lịch',
  'parentTask.started': 'Đã gửi tới thiết bị',
  'parentTask.saved': 'Đã đồng bộ lịch tới thiết bị',
  'parentTask.saveFailed': 'Lưu thất bại',
  'parentTask.deviceOffline': 'Thiết bị offline, chưa lưu. Bật máy và kết nối mạng rồi thử lại.',
  'parentTask.online': 'Thiết bị online',
  'parentTask.offline': 'Thiết bị offline',
  'parentTask.checkingOnline': 'Đang kiểm tra trạng thái thiết bị…',
  'parentTask.onlineHint': 'Có thể gửi nhiệm vụ tức thì và theo lịch.',
  'parentTask.offlineHint': 'Không gửi được nhiệm vụ. Bật máy và kết nối mạng.',
  'parentTask.startFailed': 'Gửi thất bại, kiểm tra thiết bị online',
  'parentTask.stop': 'Dừng',
  'parentTask.stopTitle': 'Dừng nhiệm vụ hiện tại',
  'parentTask.stopConfirm': 'Thiết bị sẽ quay lại trò chuyện ngay.',
  'parentTask.stopped': 'Đã gửi lệnh dừng tới thiết bị',
  'parentTask.stopFailed': 'Dừng thất bại, kiểm tra thiết bị online',
  'parentTask.deleteTitle': 'Xóa nhiệm vụ',
  'parentTask.deleteConfirm': 'Lịch trên thiết bị cũng sẽ bị xóa.',
  'parentTask.deleted': 'Đã xóa',
  'parentTask.deleteFailed': 'Xóa thất bại',
  'parentTask.scene': 'Cảnh',
  'parentTask.dispatchHint': 'Bắt đầu ngay sẽ đổi chế độ ngay. Lịch sẽ đổi đúng giờ, không cần lệnh thoại.',
  'parentTask.lesson': 'Bài',
  'parentTask.pickScene': 'Chọn cảnh',
  'parentTask.pickLesson': 'Chọn bài',
  'parentTask.repeat': 'Số lần',
  'parentTask.level': 'Cấp',
  'parentTask.system': 'Nhóm',
  'parentTask.story': 'Thành ngữ',
  'parentTask.pickStory': 'Chọn một thành ngữ',
  'parentTask.noStories': 'Nhóm này chưa có bài. Hãy thêm trong danh mục.',
  'parentTask.sentenceCount': 'Bài shadowing có {n} câu',
  'parentTask.enPassesTitle': 'Nghe tiếng Anh',
  'parentTask.cnFixed': 'Tiếng Trung 1 lần, 1.0×, sau đó tiếng Anh theo bên dưới.',
  'parentTask.enPassIndex': 'Lượt tiếng Anh {n}',
  'parentTask.addEnPass': 'Thêm lượt tiếng Anh',
  'parentTask.removePass': 'Xóa',
  'parentTask.shadowingSettings': 'Shadowing',
  'parentTask.shadowingLang': 'Ngôn ngữ',
  'parentTask.shadowingLang.cn': 'Tiếng Trung',
  'parentTask.shadowingLang.en': 'Tiếng Anh',
  'parentTask.shadowingSpeed': 'Tốc độ phát',
  'parentTask.shadowingHint': 'Cửa sổ ghi = thời lượng phát thực tế × 1.2. Hiện {speed}×.',
  'parentTask.languagePair': 'Cặp ngôn ngữ',
  'parentTask.pickPair': 'Chọn cặp ngôn ngữ',
  'parentTask.pairSoon': 'đang hoàn thiện',
  'parentTask.pairFallbackHint': 'Gói câu đầy đủ vẫn đang làm. Thiết bị sẽ luyện Trung-Anh trước.',
  'parentTask.duration': 'Thời lượng (phút, 0 = không giới hạn)',
  'parentTask.noDuration': 'Không giới hạn',
  'parentTask.minutesValue': '{n} phút',
  'parentTask.onComplete': 'Khi xong',
  'parentTask.completeChat': 'Về trò chuyện',
  'parentTask.completePowerOff': 'Tắt mềm',
  'parentTask.howToRun': 'Cách chạy',
  'parentTask.immediate': 'Chạy ngay',
  'parentTask.schedule': 'Lịch',
  'parentTask.schedule.daily': 'Hàng ngày',
  'parentTask.schedule.hourly': 'Hàng giờ',
  'parentTask.schedule.interval': 'Khoảng',
  'parentTask.time': 'Giờ',
  'parentTask.pickTime': 'Chọn giờ',
  'parentTask.timeHint': 'Có thể chọn bất kỳ giờ:phút trong ngày',
  'parentTask.repeatDays': 'Lặp',
  'parentTask.everyDay': 'Mỗi ngày',
  'parentTask.weekdays': 'Ngày làm việc',
  'parentTask.hourlyMinute': 'Phút mỗi giờ',
  'parentTask.hourlyOnTheHour': 'Mỗi giờ đúng điểm',
  'parentTask.hourlyAt': 'Mỗi giờ :{minute}',
  'parentTask.everyMinutes': 'Mỗi {minutes} phút',
  'parentTask.intervalMinutes': 'Khoảng (phút)',
  'parentTask.weekday.mon': 'T2',
  'parentTask.weekday.tue': 'T3',
  'parentTask.weekday.wed': 'T4',
  'parentTask.weekday.thu': 'T5',
  'parentTask.weekday.fri': 'T6',
  'parentTask.weekday.sat': 'T7',
  'parentTask.weekday.sun': 'CN',
 
  'parentHistory.pageTitle': 'Lịch sử',
  'parentHistory.detailTitle': 'Chi tiết',
  'parentHistory.entry': 'Lịch sử',
  'parentHistory.empty': 'Chưa có bản ghi. Chúng sẽ xuất hiện sau khi bé hoàn thành nhiệm vụ.',
  'parentHistory.loadFailed': 'Tải thất bại',
  'parentHistory.status.running': 'Đang chạy',
  'parentHistory.status.completed': 'Hoàn thành',
  'parentHistory.status.cancelled': 'Đã thoát',
  'parentHistory.status.preempted': 'Bị ngắt',
  'parentHistory.status.other': 'Chưa xong',
  'parentHistory.source.immediate': 'Bắt đầu ngay',
  'parentHistory.source.schedule': 'Lịch',
  'parentHistory.source.voice': 'Lệnh thoại',
  'parentHistory.durationSec': '{s} giây',
  'parentHistory.durationMin': '{m} phút {s} giây',
  'parentHistory.turns': '{n} câu',
  'parentHistory.sentence': 'Câu {n}',
  'parentHistory.expected': 'Nguyên văn',
  'parentHistory.asr': 'Đọc theo',
  'parentHistory.noExpected': 'Không có nguyên văn',
  'parentHistory.noAsr': 'Không nhận được phần đọc theo',
  'parentHistory.noAudio': 'Không có bản ghi phát được',
  'parentHistory.emptyTurns': 'Lần đọc theo này chưa có câu.',
  'parentHistory.extensiveHint': 'Nghe rộng không có bản ghi từng câu. Trang này chỉ xem hoàn thành và thời lượng.',
  'parentHistory.noChat': 'Khoảng thời gian này không có hội thoại.',
}