diff --git a/android/app/build.gradle b/android/app/build.gradle
index 910a5230..7bd27ad0 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -69,7 +69,7 @@ android {
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
- resourceConfigurations += ["en", "de", "fa", "zh"]
+ resourceConfigurations += ["en", "de", "fa", "vi", "zh"]
}
signingConfigs {
diff --git a/android/app/src/main/res/values-vi/strings.xml b/android/app/src/main/res/values-vi/strings.xml
new file mode 100644
index 00000000..e95d82d8
--- /dev/null
+++ b/android/app/src/main/res/values-vi/strings.xml
@@ -0,0 +1,4 @@
+
+
+ Table Habit
+
diff --git a/android/app/src/main/res/xml/locales_config.xml b/android/app/src/main/res/xml/locales_config.xml
index 34e3a263..542f3de6 100644
--- a/android/app/src/main/res/xml/locales_config.xml
+++ b/android/app/src/main/res/xml/locales_config.xml
@@ -3,5 +3,6 @@
+
\ No newline at end of file
diff --git a/assets/l10n/vi.arb b/assets/l10n/vi.arb
new file mode 100644
index 00000000..459d8544
--- /dev/null
+++ b/assets/l10n/vi.arb
@@ -0,0 +1,296 @@
+{
+ "@@locale": "vi",
+ "appName": "Table Habit",
+ "habitEdit_saveButton_text": "Lưu",
+ "habitEdit_habitName_hintText": "Tên thói quen ...",
+ "habitEdit_colorPicker_title": "Chọn màu sắc",
+ "habitEdit_habitTypeDialog_title": "Loại thói quen",
+ "habitEdit_habitType_positiveText": "Tích cực",
+ "habitEdit_habitType_negativeText": "Tiêu cực",
+ "habitEdit_habitDailyGoal_hintText": "Mục tiêu hàng ngày, mặc định {number}",
+ "habitEdit_habitDailyGoal_negativeHintText": "Ngưỡng tối thiểu hàng ngày, mặc định {number}",
+ "habitEdit_habitDailyGoal_errorText01": "mục tiêu hàng ngày phải > {number}",
+ "habitEdit_habitDailyGoal_errorText02": "mục tiêu hàng ngày phải ≤ {number}",
+ "habitEdit_habitDailyGoal_negativeErrorText01": "mục tiêu hàng ngày phải ≥ {number}",
+ "habitEdit_habitDailyGoal_negativeErrorText02": "mục tiêu hàng ngày phải ≤ {number}",
+ "habitEdit_habitDailyGoalUnit_hintText": "Đơn vị mục tiêu hàng ngày",
+ "habitEdit_habitDailyGoalExtra_hintText": "Mục tiêu hàng ngày tối đa mong muốn",
+ "habitEdit_habitDailyGoalExtra_errorText": "giá trị không hợp lệ, phải trống hoặc ≥ {dailyGoal}",
+ "habitEdit_habitDailyGoalExtra_negativeHintText": "Giới hạn tối đa hàng ngày",
+ "habitEdit_frequencySelector_title": "Chọn tần suất",
+ "habitEdit_habitFreq_daily": "Hằng ngày",
+ "habitEdit_habitFreq_perweek": "",
+ "habitEdit_habitFreq_perweek_ex01": "số lần mỗi tuần",
+ "habitEdit_habitFreq_permonth": "",
+ "habitEdit_habitFreq_permonth_ex01": "số lần mỗi tháng",
+ "habitEdit_habitFreq_predayfreq": "",
+ "habitEdit_habitFreq_predayfreq_ex01": "số lần mỗi",
+ "habitEdit_habitFreq_predayfreq_ex02": "ngày",
+ "habitEdit_habitFreq_predayfreq_reverse_flag": "0",
+ "habitEdit_habitFreq_show_daily": "Hằng ngày",
+ "habitEdit_habitFreq_show_perweek": "{freq, plural, =1{Per week} other{At least {freq} times per week}}",
+ "habitEdit_habitFreq_show_permonth": "{freq, plural, =1{Per month} other{At least {freq} times per month}}",
+ "habitEdit_habitFreq_show_perdayfreq": "{freq, plural, =1{In every {days} days} other{At least {freq} times in every {days} days}}",
+ "habitEdit_targetDays_title": "{targetDays} ngày",
+ "habitEidt_targetDays_dialogTitle": "Chọn ngày mục tiêu",
+ "habitEdit_targetDays": "ngày",
+ "habitEdit_reminder_hintText": "Lời nhắc nhở",
+ "habitEdit_reminder_freq_weekHelpText": "Bất kỳ ngày nào trong tuần",
+ "habitEdit_reminder_freq_weekPrefixText": "",
+ "habitEdit_reminder_freq_weekSubfixText": " vào mỗi tuần",
+ "habitEdit_reminder_freq_monthHelpText": "Bất kỳ ngày nào trong tháng",
+ "habitEdit_reminder_freq_monthPrefixText": "",
+ "habitEdit_reminder_freq_monthSubfixText": " vào mỗi tháng",
+ "habitEdit_reminderQuest_hintText": "Câu hỏi, ví dụ: Hôm nay bạn có tập thể dục không?",
+ "habitEdit_reminder_dialogTitle": "Chọn loại lời nhắc",
+ "habitEdit_reminder_dialogType_whenNeeded": "Khi cần đánh dấu",
+ "habitEdit_reminder_dialogType_daily": "Hằng ngày",
+ "habitEdit_reminder_dialogType_week": "Mỗi tuần",
+ "habitEdit_reminder_dialogType_month": "Mỗi tháng",
+ "habitEdit_reminder_dialogConfirm": "xác nhận",
+ "habitEdit_reminder_dialogCancel": "hủy",
+ "habitEdit_reminder_cancelDialogTitle": "Xác nhận",
+ "habitEdit_reminder_cancelDialogSubtitle": "Bạn có xác nhận xóa lời nhắc này không",
+ "habitEdit_reminder_cancelDialogConfirm": "xác nhận",
+ "habitEdit_reminder_cancelDialogCancel": "hủy",
+ "habitEdit_reminder_weekdayText_monday": "T.Hai",
+ "habitEdit_reminder_weekdayText_tuesday": "T.Ba",
+ "habitEdit_reminder_weekdayText_wednesday": "T.Tư",
+ "habitEdit_reminder_weekdayText_tursday": "T.Năm",
+ "habitEdit_reminder_weekdayText_friday": "T.Sáu",
+ "habitEdit_reminder_weekdayText_saturday": "T.Bảy",
+ "habitEdit_reminder_weekdayText_sunday": "C.Nhật",
+ "habitEdit_desc_hintText": "Bản ghi nhớ, hỗ trợ Markdown",
+ "habitEdit_create_datetime_prefix": "Đã tạo: ",
+ "habitEdit_modify_datetime_prefix": "Đã sửa đổi: ",
+ "habitDisplay_fab_text": "Thói quen mới",
+ "habitDisplay_emptyImage_text_01": "Hành trình vạn dặm bắt đầu từ một bước chân",
+ "habitDisplay_archiveHabitsConfirmDialog_title": "Lưu trữ các thói quen đã chọn?",
+ "habitDisplay_archiveHabitsConfirmDialog_confirm": "xác nhận",
+ "habitDisplay_archiveHabitsConfirmDialog_cancel": "hủy",
+ "habitDisplay_archiveHabitsSuccSnackbarText": "Đã lưu trữ {count} thói quen",
+ "habitDisplay_unarchiveHabitsConfirmDialog_title": "Hủy lưu trữ các thói quen đã chọn?",
+ "habitDisplay_unarchiveHabitsConfirmDialog_confirm": "xác nhận",
+ "habitDisplay_unarchiveHabitsConfirmDialog_cancel": "hủy",
+ "habitDisplay_unarchiveHabitsSuccSnackbarText": "Đã hủy lưu trữ {count} thói quen",
+ "habitDisplay_deleteHabitsConfirmDialog_title": "Xóa các thói quen đã chọn?",
+ "habitDisplay_deleteHabitsConfirmDialog_confirm": "xác nhận",
+ "habitDisplay_deleteHabitsConfirmDialog_cancel": "hủy",
+ "habitDisplay_deleteHabitsSuccSnackbarText": "Đã xóa {count} thói quen",
+ "habitDisplay_editPopMenu_selectAll": "Chọn tất cả",
+ "habitDisplay_editPopMenu_export": "Xuất",
+ "habitDisplay_editPopMenu_delete": "Xóa",
+ "habitDisplay_editPopMenu_clone": "Bản mẫu",
+ "habitDisplay_editButton_tooltip": "Biên tập",
+ "habitDisplay_archiveButton_tooltip": "Lưu trữ",
+ "habitDisplay_unarchiveButton_tooltip": "Hủy lưu trữ",
+ "habitDisplay_settingButton_tooltip": "Thiết đặt",
+ "habitDisplay_statsMenu_statSubgroupText": "Hiện tại",
+ "habitDisplay_statsMenu_completedTileText": "Hoàn thành",
+ "habitDisplay_statsMenu_inProgresTileText": "Trong tiến trình",
+ "habitDisplay_statsMenu_archivedTileText": "Đã lưu trữ",
+ "habitDisplay_statsMenu_popularitySubgroupText": "Thói quen hàng đầu: Thay đổi trong 30 ngày qua",
+ "habitDisplay_mainMenu_lightTheme": "Chủ đề sáng",
+ "habitDisplay_mainMenu_darkTheme": "Chủ đề tối",
+ "habitDisplay_mainMenu_followSystemTheme": "Theo hệ thống",
+ "habitDisplay_mainMenu_showArchivedTileText": "Hiển thị đã lưu trữ",
+ "habitDisplay_mainMenu_showCompletedTileText": "Hiển thị đã hoàn thành",
+ "habitDisplay_mainMenu_showActivedTileText": "Hiển thị đã kích hoạt",
+ "habitDisplay_mainMenu_settingTileText": "Thiết đặt",
+ "habitDisplay_sort_reverseText": "Đảo ngược",
+ "habitDisplay_sortDirection_asc": "(Tăng)",
+ "habitDisplay_sortDirection_Desc": "(Giảm)",
+ "habitDisplay_sortType_manual": "Thứ tự của tôi",
+ "habitDisplay_sortType_name": "Theo tên",
+ "habitDisplay_sortType_colorType": "Theo màu sắc",
+ "habitDisplay_sortType_progress": "Theo tỷ lệ",
+ "habitDisplay_sortType_startT": "Theo ngày bắt đầu",
+ "habitDisplay_sortType_status": "Theo trạng thái",
+ "habitDisplay_sortTypeDialog_title": "Sắp xếp",
+ "habitDisplay_sortTypeDialog_confirm": "xác nhận",
+ "habitDisplay_sortTypeDialog_cancel": "hủy",
+ "habitDisplay_debug_debugSubgroup_title": "🛠️Gỡ lỗi",
+ "habitDetail_editButton_tooltip": "Biên tập",
+ "habitDetail_editPopMenu_unarchive": "Hủy lưu trữ",
+ "habitDetail_editPopMenu_archive": "Lưu trữ",
+ "habitDetail_editPopMenu_export": "Xuất",
+ "habitDetail_editPopMenu_delete": "Xóa",
+ "habitDetail_editPopMenu_clone": "Bản mẫu",
+ "habitDetail_confirmDialog_confirm": "xác nhận",
+ "habitDetail_confirmDialog_cancel": "hủy",
+ "habitDetail_archiveConfirmDialog_titleText": "Lưu trữ thói quen ?",
+ "habitDetail_unarchiveConfirmDialog_titleText": "Hủy lưu trữ thói quen?",
+ "habitDetail_deleteConfirmDialog_titleText": "Xóa thói quen?",
+ "habitDetail_summary_title": "Bản tóm tắt",
+ "habitDetail_summary_body": "Điểm hiện tại là {score} và đã {days} ngày kể từ khi bắt đầu.",
+ "habitDetail_summary_preBody": "{days, plural, =1{Starting tomorrow.} other{Start in {days} days.}}",
+ "habitDetail_heatmap_leftHelpText": "{habitType, plural, =1{INCOMPLETE} =2{SUBSTANDARD} other{}}",
+ "habitDetail_heatmap_rightHelpText": "{habitType, plural, =1{OVERFULFIL} =2{IMPECCABLE} other{}}",
+ "habitDetail_descDailyGoal_titleText": "{habitType, plural, =2{Threshold} other{Goal}}",
+ "habitDetail_descDailyGoal_unitText": "Đơn vị {unit}",
+ "habitDetail_descDailyGoal_unitEmptyText": "vô giá trị",
+ "habitDetail_descTargetDays_titleText": "{habitType, plural, other{Days}}",
+ "habitDetail_descTargetDays_unitText": "d",
+ "habitDetail_descRecordsNum_titleText": "Hồ sơ",
+ "habitDetail_scoreChart_title": "Điểm",
+ "habitDetail_scoreChartCombine_dailyText": "Ngày",
+ "habitDetail_scoreChartCombine_weeklyText": "Tuần",
+ "habitDetail_scoreChartCombine_monthlyText": "Tháng",
+ "habitDetail_scoreChartCombine_yearlyText": "Năm",
+ "habitDetail_freqChart_freqTitle": "Tần suất",
+ "habitDetail_freqChart_historyTitle": "Lịch sử",
+ "habitDetail_freqChart_combinedTitle": "Tần suất & Lịch sử",
+ "habitDetail_freqChartCombine_weeklyText": "Tuần",
+ "habitDetail_freqChartCombine_monthlyText": "Tháng",
+ "habitDetail_freqChartCombine_yearlyText": "Năm",
+ "habitDetail_freqChartNaviBar_nowText": "Bây giờ",
+ "habitDetail_freqChart_expanded_hideTooltip": "Ẩn biểu đồ lịch sử",
+ "habitDetail_freqChart_expanded_showTooltip": "Hiện biểu đồ lịch sử",
+ "habitDetail_descSubgroup_title": "Bản ghi nhớ",
+ "habitDetail_otherSubgroup_title": "Khác",
+ "habitDetail_habitType_title": "Kiểu",
+ "habitDetail_reminderTile_title": "Lời nhắc nhở",
+ "habitDetail_freqTile_title": "Lặp lại",
+ "habitDetail_startDateTile_title": "Ngày bắt đầu",
+ "habitDetail_createDateTile_title": "Đã tạo",
+ "habitDetail_modifyDateTile_title": "Đã sửa đổi",
+ "habitDetail_editHeatmapCal_dateButtonText": "ngày",
+ "habitDetail_editHeatmapCal_valueButtonText": "giá trị",
+ "habitDetail_editHeatmapCal_backToToday_tooltipText": "trở lại ngày hôm nay",
+ "habitDetail_notFoundText": "Tải thói quen thất bại",
+ "habitDetail_notFoundRetryText": "Thử lại",
+ "habitDetail_changeGoal_title": "Thay đổi mục tiêu",
+ "habitDetail_changeGoal_currentChipText": "hiện tại: {goal}",
+ "habitDetail_changeGoal_doneChipText": "xong: {goal}",
+ "habitDetail_changeGoal_undoneChipText": "hoàn tác",
+ "habitDetail_changeGoal_extraChipText": "{goal}",
+ "habitDetail_changeGoal_helpText": "Mục tiêu hàng ngày, mặc định: {goal}",
+ "habitDetail_changeGoal_cancelText": "hủy",
+ "habitDetail_changeGoal_saveText": "lưu",
+ "habitDetail_skipReason_title": "Bỏ qua lý do",
+ "habitDetail_skipReason_bodyHelpText": "Viết gì đó vào đây...",
+ "habitDetail_skipReason_cancelText": "hủy",
+ "habitDetail_skipReason_saveText": "lưu",
+ "appSetting_appbar_titleText": "Thiết đặt",
+ "appSetting_displaySubgroupText": "Hiển thị",
+ "appSetting_operationSubgroupText": "Vận hành",
+ "appSetting_dragCalendarByPageTile_titleText": "Kéo lịch theo trang",
+ "appSetting_dragCalendarByPageTile_subtitleText": "Nếu nút chuyển được bật, lịch thanh ứng dụng trên trang chủ sẽ được kéo theo trang. Theo mặc định, nút chuyển bị tắt.",
+ "appSetting_changeRecordStatusOpTile_titleText": "Thay đổi trạng thái bản ghi",
+ "appSetting_changeRecordStatusOpTile_subtitleText": "Sửa đổi hành vi nhấp chuột để thay đổi trạng thái của bản ghi hàng ngày trên trang chính.",
+ "appSetting_openRecordStatusDialogOpTile_titleText": "Mở bản ghi chi tiết",
+ "appSetting_openRecordStatusDialogOpTile_subtitleText": "Sửa đổi hành vi nhấp chuột để mở cửa sổ bật lên chi tiết cho các bản ghi hàng ngày trên trang chính.",
+ "appSetting_firstDayOfWeek_titleText": "Ngày đầu tuần",
+ "appSetting_firstDayOfWeekDialog_titleText": "Hiển thị ngày đầu tuần",
+ "appSetting_firstDayOfWeekDialog_defaultText": " (Mặc định)",
+ "appSetting_dateDisplayFormat_titleText": "Định dạng hiển thị ngày ({formatTemplate})",
+ "appSetting_dateDisplayFormat_titleTemplate_followSystemText": "theo thiết đặt hệ thống",
+ "appSetting_dateDisplayFormat_subTitleText": "Định dạng ngày đã định cấu hình sẽ được áp dụng cho hiển thị ngày trên trang chi tiết thói quen.",
+ "appSetting_compactUISwitcher_titleText": "Bật giao diện người dùng nhỏ gọn trên trang thói quen",
+ "appSetting_compactUISwitcher_subtitleText": "Cho phép bảng kiểm tra thói quen hiển thị nhiều nội dung hơn nhưng một số giao diện người dùng và văn bản có thể trông nhỏ hơn.",
+ "appSetting_collapsed_calendar_bararea_titleText": "Thói quen kiểm tra khu vực điều chỉnh đài phát thanh",
+ "appSetting_collapsed_calendar_bararea_subtitleText": "Điều chỉnh tỷ lệ phần trăm để có thêm/ít không gian hơn trong khu vực bảng kiểm tra thói quen.",
+ "appSetting_collapsed_calendar_bararea_defaultText": "Mặc định",
+ "appSetting_reminderSubgroupText": "Lời nhắc nhở",
+ "appSetting_dailyReminder_titleText": "Nhắc nhở hàng ngày",
+ "appSetting_backupAndRestoreSubgroupText": "Sao lưu & khôi phục",
+ "appSetting_export_titleText": "Xuất",
+ "appSetting_export_subtitleText": "Đã xuất thói quen ở định dạng JSON, Tệp này có thể được nhập lại.",
+ "appSetting_import_titleText": "Nhập",
+ "appSetting_import_subtitleText": "Nhập thói quen từ tệp json.",
+ "appSetting_importDialog_confirmTitle": "Xác nhận nhập {count} thói quen?",
+ "appSetting_importDialog_confirmSubtitle": "Lưu ý: Quá trình nhập không xóa các thói quen hiện có.",
+ "appSetting_importDialog_confirm_confirmText": "xác nhận",
+ "appSetting_importDialog_confirm_cancelText": "hủy",
+ "appSetting_importDialog_importingTitle": "Đã nhập {completeCount}/{totalCount}",
+ "appSetting_importDialog_completeTitle": "Hoàn tất nhập {count}",
+ "appSetting_importDialog_complete_closeLabel": "đóng",
+ "appSetting_resetConfig_titleText": "Đặt lại cấu hình",
+ "appSetting_resetConfig_subtitleText": "Đặt lại tất cả cấu hình về mặc định.",
+ "appSetting_resetConfigDialog_titleText": "Đặt lại cấu hình?",
+ "appSetting_resetConfigDialog_subtitleText": "Đặt lại tất cả cấu hình về mặc định, phải khởi động lại ứng dụng để áp dụng.",
+ "appSetting_resetConfigDialog_cancelText": "hủy",
+ "appSetting_resetConfigDialog_confirmText": "xác nhận",
+ "appSetting_resetConfigSuccess_snackbarText": "đặt lại cấu hình ứng dụng thành công",
+ "appSetting_otherSubgroupText": "Khác",
+ "appSetting_developMode_titleText": "Chế độ phát triển",
+ "appSetting_clearCache_titleText": "Xóa bộ nhớ đệm",
+ "appSetting_clearCacheDialog_titleText": "Xóa bộ nhớ đệm",
+ "appSetting_clearCacheDialog_subtitleText": "Sau khi xóa bộ nhớ đệm, một số giá trị tùy chỉnh sẽ được khôi phục về mặc định.",
+ "appSetting_clearCacheDialog_cancelText": "hủy",
+ "appSetting_clearCacheDialog_confirmText": "xác nhận",
+ "appSetting_clearCache_snackBar_partSuccText": "Xóa một phần bộ nhớ đệm không thành công",
+ "appSetting_clearCache_snackBar_succText": "Xóa bộ nhớ đệm thành công",
+ "appSetting_clearCache_snackBar_failText": "Xóa bộ nhớ đệm không thành công",
+ "appSetting_about_titleText": "Giới thiệu",
+ "appAbout_appbarTile_titleText": "Giới thiệu",
+ "appAbout_verionTile_titleText": "Phiên bản: {appVersion}",
+ "appAbout_verionTile_changeLogPath": "CHANGELOG.md",
+ "appAbout_sourceCodeTile_titleText": "Mã nguồn",
+ "appAbout_issueTrackerTile_titleText": "Người theo dõi vấn đề",
+ "appAbout_contactEmailTile_titleText": "Liên hệ với tôi",
+ "appAbout_contactEmailTile_emailBody": "Xin chào, tôi rất vui vì bạn đã liên hệ với tôi.\nNếu bạn đang báo cáo lỗi, vui lòng cho biết phiên bản ứng dụng và mô tả các bước để tái tạo lỗi đó.\n------------- -------------------------",
+ "appAbout_licenseTile_titleText": "Giấy phép",
+ "appAbout_licenseTile_subtitleText": "Giấy phép Apache, Phiên bản 2.0",
+ "appAbout_licenseThirdPartyTile_titleText": "Tuyên bố cấp phép của bên thứ ba",
+ "appAbout_licenseThirdPartyTile_subtitleText": "flutter",
+ "appAbout_donateTile_titleText": "Quyên tặng",
+ "appAbout_donateTile_subTitleText": "Tôi là nhà phát triển cá nhân. Nếu bạn thích ứng dụng này, vui lòng mua cho tôi một ☕.",
+ "appAbout_donateTile_ways": "@paypal,@buyMeACoffee,@alipay,@wechatPay,@cryptoCurrencyAll",
+ "donateWay_paypal": "Paypal",
+ "donateWay_buyMeACoffee": "Mua cho tôi một ly cà phê",
+ "donateWay_alipay": "Alipay",
+ "donateWay_wechatPay": "Wechat Pay",
+ "donateWay_cryptoCurrency": "Tiền tệ điện tử",
+ "donateWay_cryptoCurrency_BTC": "BTC",
+ "donateWay_cryptoCurrency_ETH": "ETH",
+ "donateWay_cryptoCurrency_BNB": "BNB",
+ "donateWay_cryptoCurrency_AVAX": "AVAX",
+ "donateWay_cryptoCurrency_FTM": "FTM",
+ "donateWay_firstQRGroup": "Alipay & Wechat Pay",
+ "appAbout_donateDialog_copiedCrypto_msg": "Đã sao chép địa chỉ của {name}",
+ "appReminder_dailyReminder_title": "🏝 Hôm nay bạn có giữ thói quen của mình không?",
+ "appReminder_dailyReminder_body": "nhấp để vào ứng dụng và đăng nhập đúng giờ.",
+ "common_habitColorType_cc1": "Tím đậm",
+ "common_habitColorType_cc2": "Đỏ",
+ "common_habitColorType_cc3": "Tím",
+ "common_habitColorType_cc4": "Xanh hoàng gia",
+ "common_habitColorType_cc5": "Lục lam đậm",
+ "common_habitColorType_cc6": "Xanh lá",
+ "common_habitColorType_cc7": "Hổ phách",
+ "common_habitColorType_cc8": "Cam",
+ "common_habitColorType_cc9": "Xanh chanh",
+ "common_habitColorType_cc10": "Tím tối",
+ "common_habitColorType_default": "Màu {index}",
+ "common_customDateTimeFormatPicker_useSystemFormat_text": "Sử dụng định dạng hệ thống",
+ "common_customDateTimeFormatPicker_fmtTileText": "Định dạng ngày tháng",
+ "common_customDateTimeFormatPicker_ymd_text": "Năm Tháng Ngày",
+ "common_customDateTimeFormatPicker_mdy_text": "Tháng Ngày Năm",
+ "common_customDateTimeFormatPicker_dmy_text": "Ngày Tháng Năm",
+ "common_customDateTimeFormatPicker_SepTileText": "Dấu phân cách",
+ "common_customDateTimeFormatPicker_sepDash_text": "Dấu gạch ngang",
+ "common_customDateTimeFormatPicker_sepSlash_text": "Dấu gạch chéo",
+ "common_customDateTimeFormatPicker_sepSpace_text": "Dấu cách",
+ "common_customDateTimeFormatPicker_sepDot_text": "Dấu chấm",
+ "common_customDateTimeFormatPicker_empty_text": "Không dấu phân cách",
+ "common_customDateTimeFormatPicker_sep_formatter": "{splitName}: \"{splitChar}\"",
+ "common_customDateTimeFormatPicker_12Hour_text": "Sử dụng định dạng 12 giờ",
+ "common_customDateTimeFormatPicker_monthName_text": "Sử dụng tên đầy đủ",
+ "common_customDateTimeFormatPicker_applyFreqChart_text": "Áp dụng cho biểu đồ tần suất",
+ "common_customDateTimeFormatPicker_applyHeapmap_text": "Áp dụng cho Lịch",
+ "common_customDateTimeFormatPicker_cancelButton_text": "hủy",
+ "common_customDateTimeFormatPicker_confirmButton_text": "xác nhận",
+ "calendarPicker_clip_today": "Hôm nay",
+ "calendarPicker_clip_tomorrow": "Ngày mai",
+ "calendarPicker_clip_after7Days": "{date} kế tiếp",
+ "exportConfirmDialog_title_exportAll": "Xuất tất cả thói quen?",
+ "exportConfirmDialog_title_exportMulti": "Xuất {number, plural, =0{current habit} =1{1 habit} other{{number} habits}}?",
+ "exportConfirmDialog_option_includeRecords": "bao gồm hồ sơ",
+ "exportConfirmDialog_cancel_buttonText": "hủy",
+ "exportConfirmDialog_confirm_buttonText": "xuất",
+ "snackbar_undoText": "HOÀN TÁC",
+ "snackbar_dissmessText": "MIỄN",
+ "userAction_tap": "Nhấn",
+ "userAction_doubleTap": "Đúp",
+ "userAction_longTap": "Lâu"
+}
\ No newline at end of file
diff --git a/docs/README/images/l10n-stat.svg b/docs/README/images/l10n-stat.svg
index f98decb9..75792b7f 100644
--- a/docs/README/images/l10n-stat.svg
+++ b/docs/README/images/l10n-stat.svg
@@ -1,12 +1,12 @@
-