forked from BasedHardware/omi
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp_localizations_vi.dart
More file actions
9977 lines (6910 loc) · 283 KB
/
Copy pathapp_localizations_vi.dart
File metadata and controls
9977 lines (6910 loc) · 283 KB
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
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// ignore: unused_import
import 'package:intl/intl.dart' as intl;
import 'app_localizations.dart';
// ignore_for_file: type=lint
/// The translations for Vietnamese (`vi`).
class AppLocalizationsVi extends AppLocalizations {
AppLocalizationsVi([String locale = 'vi']) : super(locale);
@override
String get sessionExpiredSignInAgain => 'Phiên đã hết hạn — hãy đăng nhập lại.';
@override
String get appTitle => 'Omi';
@override
String get conversationTab => 'Cuộc trò chuyện';
@override
String get transcriptTab => 'Bản ghi';
@override
String get actionItemsTab => 'Việc cần làm';
@override
String get deleteConversationTitle => 'Xóa cuộc trò chuyện?';
@override
String get deleteConversationMessage =>
'Thao tác này cũng sẽ xóa các kỷ niệm, nhiệm vụ và tệp âm thanh liên quan. Hành động này không thể hoàn tác.';
@override
String get confirm => 'Xác nhận';
@override
String get cancel => 'Hủy';
@override
String get ok => 'Ok';
@override
String get delete => 'Xóa';
@override
String get add => 'Thêm';
@override
String get update => 'Cập nhật';
@override
String get save => 'Lưu';
@override
String get edit => 'Chỉnh sửa';
@override
String get close => 'Đóng';
@override
String get clear => 'Xóa sạch';
@override
String get copyTranscript => 'Sao chép bản ghi';
@override
String get copySummary => 'Sao chép tóm tắt';
@override
String get copyConversationId => 'Sao chép ID cuộc trò chuyện';
@override
String get conversationIdCopied => 'Đã sao chép ID cuộc trò chuyện vào clipboard';
@override
String get testPrompt => 'Thử nghiệm';
@override
String get reprocessConversation => 'Xử lý lại cuộc trò chuyện';
@override
String get deleteConversation => 'Xóa cuộc trò chuyện';
@override
String get contentCopied => 'Đã sao chép nội dung vào clipboard';
@override
String get failedToUpdateStarred => 'Không thể cập nhật trạng thái gắn sao.';
@override
String get conversationUrlNotShared => 'Không thể chia sẻ URL cuộc trò chuyện.';
@override
String get errorProcessingConversation => 'Lỗi khi xử lý cuộc trò chuyện. Vui lòng thử lại sau.';
@override
String get noInternetConnection => 'Không có kết nối internet';
@override
String get unableToDeleteConversation => 'Không thể xóa cuộc trò chuyện';
@override
String get somethingWentWrong => 'Đã có lỗi xảy ra! Vui lòng thử lại sau.';
@override
String get copyErrorMessage => 'Sao chép thông báo lỗi';
@override
String get errorCopied => 'Đã sao chép thông báo lỗi vào clipboard';
@override
String get remaining => 'Còn lại';
@override
String get loading => 'Đang tải...';
@override
String get loadingDuration => 'Đang tải thời lượng...';
@override
String secondsCount(int count) {
return '$count giây';
}
@override
String get people => 'Mọi người';
@override
String get addNewPerson => 'Thêm người mới';
@override
String get editPerson => 'Chỉnh sửa người';
@override
String get createPersonHint => 'Tạo một người mới và huấn luyện Omi để nhận biết giọng nói của họ!';
@override
String get speechProfile => 'Hồ sơ Giọng nói';
@override
String sampleNumber(int number) {
return 'Mẫu $number';
}
@override
String get settings => 'Cài đặt';
@override
String get language => 'Ngôn ngữ';
@override
String get selectLanguage => 'Chọn ngôn ngữ';
@override
String get deleting => 'Đang xóa...';
@override
String get pleaseCompleteAuthentication =>
'Vui lòng hoàn tất xác thực trong trình duyệt của bạn. Sau khi hoàn tất, hãy quay lại ứng dụng.';
@override
String get failedToStartAuthentication => 'Không thể bắt đầu xác thực';
@override
String get importStarted => 'Đã bắt đầu nhập dữ liệu! Bạn sẽ được thông báo khi hoàn tất.';
@override
String get failedToStartImport => 'Không thể bắt đầu nhập dữ liệu. Vui lòng thử lại.';
@override
String get couldNotAccessFile => 'Không thể truy cập tệp đã chọn';
@override
String get askOmi => 'Hỏi Omi';
@override
String get done => 'Hoàn tất';
@override
String get disconnected => 'Đã ngắt kết nối';
@override
String get searching => 'Đang tìm kiếm...';
@override
String get connectDevice => 'Kết nối thiết bị';
@override
String get monthlyLimitReached => 'Bạn đã đạt đến giới hạn hàng tháng.';
@override
String get checkUsage => 'Kiểm tra mức sử dụng';
@override
String get syncingRecordings => 'Đang đồng bộ bản ghi âm';
@override
String get recordingsToSync => 'Bản ghi âm cần đồng bộ';
@override
String get allCaughtUp => 'Đã đồng bộ tất cả';
@override
String get sync => 'Đồng bộ';
@override
String get pendantUpToDate => 'Pendant đã được cập nhật';
@override
String get allRecordingsSynced => 'Tất cả bản ghi âm đã được đồng bộ';
@override
String get syncingInProgress => 'Đang đồng bộ';
@override
String get readyToSync => 'Sẵn sàng đồng bộ';
@override
String get tapSyncToStart => 'Nhấn Đồng bộ để bắt đầu';
@override
String get pendantNotConnected => 'Pendant chưa kết nối. Kết nối để đồng bộ.';
@override
String get everythingSynced => 'Mọi thứ đã được đồng bộ.';
@override
String get recordingsNotSynced => 'Bạn có những bản ghi âm chưa được đồng bộ.';
@override
String get syncingBackground => 'Chúng tôi sẽ tiếp tục đồng bộ bản ghi âm của bạn trong nền.';
@override
String get noConversationsYet => 'Chưa có cuộc trò chuyện nào';
@override
String get noStarredConversations => 'Không có cuộc trò chuyện đã gắn sao';
@override
String get starConversationHint =>
'Để gắn sao cuộc trò chuyện, hãy mở nó và nhấn vào biểu tượng ngôi sao ở phần đầu.';
@override
String get searchConversations => 'Tìm kiếm cuộc trò chuyện...';
@override
String selectedCount(int count, Object s) {
return 'Đã chọn $count';
}
@override
String get merge => 'Gộp';
@override
String get mergeConversations => 'Gộp cuộc trò chuyện';
@override
String mergeConversationsMessage(int count) {
return 'Thao tác này sẽ kết hợp $count cuộc trò chuyện thành một. Tất cả nội dung sẽ được gộp và tạo lại.';
}
@override
String get mergingInBackground => 'Đang gộp trong nền. Có thể mất một chút thời gian.';
@override
String get failedToStartMerge => 'Không thể bắt đầu gộp';
@override
String get askAnything => 'Hỏi bất cứ điều gì';
@override
String get noMessagesYet => 'Chưa có tin nhắn nào!\nHãy bắt đầu cuộc trò chuyện nhé?';
@override
String get deletingMessages => 'Đang xóa tin nhắn của bạn khỏi bộ nhớ của Omi...';
@override
String get messageCopied => '✨ Tin nhắn đã được sao chép vào clipboard';
@override
String get cannotReportOwnMessage => 'Bạn không thể báo cáo tin nhắn của chính mình.';
@override
String get reportMessage => 'Báo cáo tin nhắn';
@override
String get reportMessageConfirm => 'Bạn có chắc chắn muốn báo cáo tin nhắn này?';
@override
String get messageReported => 'Đã báo cáo tin nhắn thành công.';
@override
String get thankYouFeedback => 'Cảm ơn phản hồi của bạn!';
@override
String get clearChat => 'Xóa cuộc trò chuyện';
@override
String get clearChatConfirm => 'Bạn có chắc chắn muốn xóa trò chuyện? Hành động này không thể hoàn tác.';
@override
String get maxFilesLimit => 'Bạn chỉ có thể tải lên tối đa 4 tệp cùng lúc';
@override
String get chatWithOmi => 'Trò chuyện với Omi';
@override
String get apps => 'Ứng dụng';
@override
String get noAppsFound => 'Không tìm thấy ứng dụng';
@override
String get tryAdjustingSearch => 'Thử điều chỉnh tìm kiếm hoặc bộ lọc của bạn';
@override
String get createYourOwnApp => 'Tạo ứng dụng của riêng bạn';
@override
String get buildAndShareApp => 'Xây dựng và chia sẻ ứng dụng tùy chỉnh của bạn';
@override
String get searchApps => 'Tìm kiếm ứng dụng...';
@override
String get myApps => 'Do tôi tạo';
@override
String get installedApps => 'Ứng dụng đã cài đặt';
@override
String get unableToFetchApps => 'Không thể tải ứng dụng :(\n\nVui lòng kiểm tra kết nối internet và thử lại.';
@override
String get aboutOmi => 'Giới thiệu về Omi';
@override
String get privacyPolicy => 'Chính sách bảo mật';
@override
String get visitWebsite => 'Truy cập trang web';
@override
String get helpOrInquiries => 'Trợ giúp hoặc thắc mắc?';
@override
String get joinCommunity => 'Tham gia cộng đồng!';
@override
String get membersAndCounting => '8000+ thành viên và tiếp tục tăng.';
@override
String get deleteAccountTitle => 'Xóa tài khoản';
@override
String get deleteAccountConfirm => 'Bạn có chắc chắn muốn xóa tài khoản của mình?';
@override
String get cannotBeUndone => 'Hành động này không thể hoàn tác.';
@override
String get allDataErased => 'Tất cả ký ức và cuộc trò chuyện của bạn sẽ bị xóa vĩnh viễn.';
@override
String get appsDisconnected => 'Các ứng dụng và tích hợp của bạn sẽ bị ngắt kết nối ngay lập tức.';
@override
String get exportBeforeDelete =>
'Bạn có thể xuất dữ liệu trước khi xóa tài khoản, nhưng một khi đã xóa, dữ liệu không thể khôi phục.';
@override
String get deleteAccountCheckbox =>
'Tôi hiểu rằng việc xóa tài khoản là vĩnh viễn và tất cả dữ liệu, bao gồm ký ức và cuộc trò chuyện, sẽ bị mất và không thể khôi phục.';
@override
String get areYouSure => 'Bạn có chắc chắn?';
@override
String get deleteAccountFinal =>
'Hành động này không thể hoàn tác và sẽ xóa vĩnh viễn tài khoản cùng tất cả dữ liệu liên quan. Bạn có chắc chắn muốn tiếp tục?';
@override
String get deleteNow => 'Xóa ngay';
@override
String get goBack => 'Quay lại';
@override
String get checkBoxToConfirm =>
'Đánh dấu vào ô để xác nhận bạn hiểu rằng việc xóa tài khoản là vĩnh viễn và không thể hoàn tác.';
@override
String get profile => 'Hồ sơ';
@override
String get name => 'Tên';
@override
String get email => 'Email';
@override
String get customVocabulary => 'Từ vựng Tùy chỉnh';
@override
String get identifyingOthers => 'Nhận dạng Người khác';
@override
String get paymentMethods => 'Phương thức Thanh toán';
@override
String get conversationDisplay => 'Hiển thị Cuộc trò chuyện';
@override
String get dataPrivacy => 'Quyền riêng tư Dữ liệu';
@override
String get userId => 'ID Người dùng';
@override
String get notSet => 'Chưa đặt';
@override
String get userIdCopied => 'Đã sao chép ID người dùng vào clipboard';
@override
String get systemDefault => 'Mặc định hệ thống';
@override
String get planAndUsage => 'Gói & Mức sử dụng';
@override
String get offlineSync => 'Đồng bộ Ngoại tuyến';
@override
String get autoSync => 'Tự động đồng bộ';
@override
String get autoSyncDescription => 'Tự động đồng bộ các bản ghi ngoại tuyến khi thiết bị của bạn kết nối';
@override
String get deviceSettings => 'Cài đặt thiết bị';
@override
String get integrations => 'Tích hợp';
@override
String get feedbackBug => 'Phản hồi / Báo lỗi';
@override
String get helpCenter => 'Trung tâm trợ giúp';
@override
String get developerSettings => 'Cài đặt nhà phát triển';
@override
String get getOmiForMac => 'Tải Omi cho Mac';
@override
String get referralProgram => 'Chương trình giới thiệu';
@override
String get signOut => 'Đăng xuất';
@override
String get appAndDeviceCopied => 'Đã sao chép thông tin ứng dụng và thiết bị';
@override
String get wrapped2025 => 'Tổng kết 2025';
@override
String get yourPrivacyYourControl => 'Quyền riêng tư của bạn, Quyền kiểm soát của bạn';
@override
String get privacyIntro =>
'Tại Omi, chúng tôi cam kết bảo vệ quyền riêng tư của bạn. Trang này cho phép bạn kiểm soát cách dữ liệu của bạn được lưu trữ và sử dụng.';
@override
String get learnMore => 'Tìm hiểu thêm...';
@override
String get dataProtectionLevel => 'Mức độ bảo vệ dữ liệu';
@override
String get dataProtectionDesc =>
'Dữ liệu của bạn được bảo mật mặc định với mã hóa mạnh. Xem lại cài đặt và các tùy chọn bảo mật trong tương lai bên dưới.';
@override
String get appAccess => 'Quyền truy cập ứng dụng';
@override
String get appAccessDesc =>
'Các ứng dụng sau có thể truy cập dữ liệu của bạn. Nhấn vào ứng dụng để quản lý quyền của nó.';
@override
String get noAppsExternalAccess =>
'Không có ứng dụng đã cài đặt nào có quyền truy cập bên ngoài vào dữ liệu của bạn.';
@override
String get deviceName => 'Tên thiết bị';
@override
String get deviceId => 'ID Thiết Bị';
@override
String get firmware => 'Phần Mềm';
@override
String get sdCardSync => 'Đồng bộ thẻ SD';
@override
String get hardwareRevision => 'Phiên bản phần cứng';
@override
String get modelNumber => 'Số Mô Hình';
@override
String get manufacturer => 'Nhà Sản Xuất';
@override
String get doubleTap => 'Nhấn đúp';
@override
String get ledBrightness => 'Độ sáng đèn LED';
@override
String get micGain => 'Độ tăng micro';
@override
String get disconnect => 'Ngắt kết nối';
@override
String get forgetDevice => 'Xóa thiết bị';
@override
String get chargingIssues => 'Sự cố sạc';
@override
String get disconnectDevice => 'Ngắt kết nối thiết bị';
@override
String get unpairDevice => 'Hủy ghép nối thiết bị';
@override
String get unpairAndForget => 'Hủy ghép nối và xóa thiết bị';
@override
String get deviceDisconnectedMessage => 'Omi của bạn đã bị ngắt kết nối 😔';
@override
String get deviceUnpairedMessage =>
'Đã hủy ghép nối thiết bị. Đi tới Cài đặt > Bluetooth và quên thiết bị để hoàn tất việc hủy ghép nối.';
@override
String get unpairDialogTitle => 'Hủy ghép nối thiết bị';
@override
String get unpairDialogMessage =>
'Thao tác này sẽ hủy ghép nối thiết bị để có thể kết nối với điện thoại khác. Bạn cần vào Cài đặt > Bluetooth và xóa thiết bị để hoàn tất quá trình.';
@override
String get deviceNotConnected => 'Thiết bị chưa kết nối';
@override
String get connectDeviceMessage => 'Kết nối thiết bị Omi của bạn để truy cập\ncài đặt thiết bị và tùy chỉnh';
@override
String get deviceInfoSection => 'Thông tin thiết bị';
@override
String get customizationSection => 'Tùy chỉnh';
@override
String get hardwareSection => 'Phần cứng';
@override
String get v2Undetected => 'Không phát hiện V2';
@override
String get v2UndetectedMessage =>
'Chúng tôi thấy rằng bạn có thiết bị V1 hoặc thiết bị của bạn chưa được kết nối. Chức năng thẻ SD chỉ khả dụng cho thiết bị V2.';
@override
String get endConversation => 'Kết thúc cuộc trò chuyện';
@override
String get pauseResume => 'Tạm dừng/Tiếp tục';
@override
String get starConversation => 'Gắn sao cuộc trò chuyện';
@override
String get doubleTapAction => 'Hành động nhấn đúp';
@override
String get endAndProcess => 'Kết thúc & Xử lý cuộc trò chuyện';
@override
String get pauseResumeRecording => 'Tạm dừng/Tiếp tục ghi âm';
@override
String get starOngoing => 'Gắn sao cuộc trò chuyện đang diễn ra';
@override
String get off => 'Tắt';
@override
String get max => 'Tối đa';
@override
String get mute => 'Tắt tiếng';
@override
String get quiet => 'Yên tĩnh';
@override
String get normal => 'Bình thường';
@override
String get high => 'Cao';
@override
String get micGainDescMuted => 'Microphone đã tắt tiếng';
@override
String get micGainDescLow => 'Rất yên tĩnh - cho môi trường ồn ào';
@override
String get micGainDescModerate => 'Yên tĩnh - cho tiếng ồn vừa phải';
@override
String get micGainDescNeutral => 'Trung tính - ghi âm cân bằng';
@override
String get micGainDescSlightlyBoosted => 'Tăng nhẹ - sử dụng thông thường';
@override
String get micGainDescBoosted => 'Tăng cao - cho môi trường yên tĩnh';
@override
String get micGainDescHigh => 'Cao - cho giọng nói xa hoặc nhỏ';
@override
String get micGainDescVeryHigh => 'Rất cao - cho nguồn rất yên tĩnh';
@override
String get micGainDescMax => 'Tối đa - sử dụng cẩn thận';
@override
String get developerSettingsTitle => 'Cài đặt nhà phát triển';
@override
String get saving => 'Đang lưu...';
@override
String get beta => 'BETA';
@override
String get transcription => 'Phiên âm';
@override
String get transcriptionConfig => 'Cấu hình nhà cung cấp STT';
@override
String get conversationTimeout => 'Thời gian chờ cuộc trò chuyện';
@override
String get conversationTimeoutConfig => 'Đặt thời gian tự động kết thúc cuộc trò chuyện';
@override
String get importData => 'Nhập dữ liệu';
@override
String get importDataConfig => 'Nhập dữ liệu từ các nguồn khác';
@override
String get debugDiagnostics => 'Gỡ lỗi & Chẩn đoán';
@override
String get endpointUrl => 'URL điểm cuối';
@override
String get noApiKeys => 'Chưa có API key';
@override
String get createKeyToStart => 'Tạo key để bắt đầu';
@override
String get createKey => 'Tạo Khóa';
@override
String get docs => 'Tài liệu';
@override
String get yourOmiInsights => 'Thông tin chi tiết Omi của bạn';
@override
String get today => 'Hôm nay';
@override
String get thisMonth => 'Tháng này';
@override
String get thisYear => 'Năm nay';
@override
String get allTime => 'Tất cả thời gian';
@override
String get noActivityYet => 'Chưa có hoạt động';
@override
String get startConversationToSeeInsights =>
'Bắt đầu cuộc trò chuyện với Omi\nđể xem thông tin chi tiết về mức sử dụng của bạn tại đây.';
@override
String get listening => 'Lắng nghe';
@override
String get listeningSubtitle => 'Tổng thời gian Omi đã lắng nghe tích cực.';
@override
String get understanding => 'Hiểu biết';
@override
String get understandingSubtitle => 'Số từ đã hiểu từ cuộc trò chuyện của bạn.';
@override
String get providing => 'Cung cấp';
@override
String get providingSubtitle => 'Việc cần làm và ghi chú được ghi lại tự động.';
@override
String get remembering => 'Ghi nhớ';
@override
String get rememberingSubtitle => 'Sự kiện và chi tiết được ghi nhớ cho bạn.';
@override
String get unlimitedPlan => 'Gói không giới hạn';
@override
String get managePlan => 'Quản lý gói';
@override
String cancelAtPeriodEnd(String date) {
return 'Gói của bạn sẽ bị hủy vào $date.';
}
@override
String get basicPlan => 'Gói miễn phí';
@override
String usageLimitMessage(String used, int limit) {
return 'Đã sử dụng $used trong số $limit phút';
}
@override
String get upgrade => 'Nâng cấp';
@override
String get upgradeToUnlimited => 'Nâng cấp lên không giới hạn';
@override
String basicPlanDesc(int limit) {
return 'Gói của bạn bao gồm $limit phút miễn phí mỗi tháng. Nâng cấp để sử dụng không giới hạn.';
}
@override
String get shareStatsMessage => 'Chia sẻ thống kê Omi của tôi! (omi.me - trợ lý AI luôn bên bạn)';
@override
String get sharePeriodToday => 'Hôm nay, omi đã:';
@override
String get sharePeriodMonth => 'Tháng này, omi đã:';
@override
String get sharePeriodYear => 'Năm nay, omi đã:';
@override
String get sharePeriodAllTime => 'Cho đến nay, omi đã:';
@override
String shareStatsListened(String minutes) {
return '🎧 Đã lắng nghe trong $minutes phút';
}
@override
String shareStatsWords(String words) {
return '🧠 Đã hiểu $words từ';
}
@override
String shareStatsInsights(String count) {
return '✨ Đã cung cấp $count thông tin chi tiết';
}
@override
String shareStatsMemories(String count) {
return '📚 Đã ghi nhớ $count ký ức';
}
@override
String get debugLogs => 'Nhật ký gỡ lỗi';
@override
String get debugLogsAutoDelete => 'Tự động xóa sau 3 ngày.';
@override
String get debugLogsDesc => 'Giúp chẩn đoán các vấn đề';
@override
String get noLogFilesFound => 'Không tìm thấy tệp nhật ký.';
@override
String get omiDebugLog => 'Nhật ký gỡ lỗi Omi';
@override
String get logShared => 'Đã chia sẻ nhật ký';
@override
String get selectLogFile => 'Chọn tệp nhật ký';
@override
String get shareLogs => 'Chia sẻ nhật ký';
@override
String get debugLogCleared => 'Đã xóa nhật ký gỡ lỗi';
@override
String get exportStarted => 'Đã bắt đầu xuất dữ liệu. Có thể mất vài giây...';
@override
String get exportAllData => 'Xuất tất cả dữ liệu';
@override
String get exportDataDesc => 'Xuất cuộc trò chuyện sang tệp JSON';
@override
String get exportedConversations => 'Cuộc trò chuyện đã xuất từ Omi';
@override
String get exportShared => 'Đã chia sẻ bản xuất';
@override
String get deleteKnowledgeGraphTitle => 'Xóa biểu đồ tri thức?';
@override
String get deleteKnowledgeGraphMessage =>
'Thao tác này sẽ xóa tất cả dữ liệu biểu đồ tri thức được tạo ra (nút và kết nối). Ký ức gốc của bạn sẽ vẫn an toàn. Biểu đồ sẽ được xây dựng lại theo thời gian hoặc khi có yêu cầu tiếp theo.';
@override
String get knowledgeGraphDeleted => 'Đã xóa đồ thị kiến thức';
@override
String deleteGraphFailed(String error) {
return 'Không thể xóa biểu đồ: $error';
}
@override
String get deleteKnowledgeGraph => 'Xóa biểu đồ tri thức';
@override
String get deleteKnowledgeGraphDesc => 'Xóa tất cả nút và kết nối';
@override
String get mcp => 'MCP';
@override
String get mcpServer => 'Máy chủ MCP';
@override
String get mcpServerDesc => 'Kết nối trợ lý AI với dữ liệu của bạn';
@override
String get serverUrl => 'URL máy chủ';
@override
String get urlCopied => 'Đã sao chép URL';
@override
String get apiKeyAuth => 'Xác thực API Key';
@override
String get header => 'Tiêu đề';
@override
String get authorizationBearer => 'Authorization: Bearer <key>';
@override
String get oauth => 'OAuth';
@override
String get clientId => 'Mã Khách hàng';
@override
String get clientSecret => 'Mã Bí mật';
@override
String get useMcpApiKey => 'Sử dụng API key MCP của bạn';
@override
String get webhooks => 'Webhook';
@override
String get conversationEvents => 'Sự kiện cuộc trò chuyện';
@override
String get newConversationCreated => 'Đã tạo cuộc trò chuyện mới';
@override
String get realtimeTranscript => 'Bản ghi thời gian thực';
@override
String get transcriptReceived => 'Đã nhận bản ghi';
@override
String get audioBytes => 'Dữ liệu âm thanh';
@override
String get audioDataReceived => 'Đã nhận dữ liệu âm thanh';
@override
String get intervalSeconds => 'Khoảng thời gian (giây)';
@override
String get daySummary => 'Tóm tắt ngày';
@override
String get summaryGenerated => 'Đã tạo tóm tắt';
@override
String get claudeDesktop => 'Claude Desktop';
@override
String get addToClaudeConfig => 'Thêm vào claude_desktop_config.json';
@override
String get copyConfig => 'Sao chép cấu hình';
@override
String get configCopied => 'Đã sao chép cấu hình vào clipboard';
@override
String get listeningMins => 'Lắng nghe (phút)';
@override
String get understandingWords => 'Hiểu biết (từ)';
@override
String get insights => 'Thông tin chi tiết';
@override
String get memories => 'Kỷ niệm';
@override
String minsUsedThisMonth(String used, int limit) {
return 'Đã sử dụng $used trong số $limit phút trong tháng này';
}
@override
String wordsUsedThisMonth(String used, String limit) {
return 'Đã sử dụng $used trong số $limit từ trong tháng này';
}
@override
String insightsUsedThisMonth(String used, String limit) {
return 'Đã thu được $used trong số $limit thông tin chi tiết trong tháng này';
}
@override
String get visibility => 'Hiển thị';
@override
String get visibilitySubtitle => 'Kiểm soát cuộc trò chuyện nào xuất hiện trong danh sách của bạn';
@override
String get showShortConversations => 'Hiển thị cuộc trò chuyện ngắn';
@override
String get showShortConversationsDesc => 'Hiển thị cuộc trò chuyện ngắn hơn ngưỡng';
@override
String get showDiscardedConversations => 'Hiển thị cuộc trò chuyện đã hủy';
@override
String get showDiscardedConversationsDesc => 'Bao gồm cuộc trò chuyện được đánh dấu là đã hủy';
@override
String get shortConversationThreshold => 'Ngưỡng cuộc trò chuyện ngắn';
@override
String get shortConversationThresholdSubtitle => 'Cuộc trò chuyện ngắn hơn sẽ bị ẩn trừ khi được bật ở trên';
@override
String get durationThreshold => 'Ngưỡng thời lượng';
@override
String get durationThresholdDesc => 'Ẩn cuộc trò chuyện ngắn hơn';