Просмотр исходного кода

feat(locale): add Vietnamese translation

dinhkarate 1 день назад
Родитель
Сommit
1947089d0f

+ 1 - 0
internal/locale/catalog_test.go

@@ -150,6 +150,7 @@ func TestTranslationFilePluralForms(t *testing.T) {
 		"ru_RU":            3,
 		"tr_TR":            2,
 		"uk_UA":            3,
+		"vi_VN":            1,
 		"zh_CN":            1,
 		"zh_TW":            1,
 	}

+ 1 - 0
internal/locale/locale.go

@@ -26,6 +26,7 @@ var AvailableLanguages = map[string]string{
 	"ru_RU":            "Русский",
 	"tr_TR":            "Türkçe",
 	"uk_UA":            "Українська",
+	"vi_VN":            "Tiếng Việt",
 	"zh_CN":            "简体中文",
 	"zh_TW":            "繁體中文",
 }

+ 1 - 1
internal/locale/plural.go

@@ -36,7 +36,7 @@ func getPluralForm(lang string, n int) int {
 			return 1
 		}
 		return 0
-	case "id_ID", "ja_JP", "ko_KR":
+	case "id_ID", "ja_JP", "ko_KR", "vi_VN":
 		return 0
 	case "pl_PL":
 		switch {

+ 8 - 0
internal/locale/plural_test.go

@@ -141,6 +141,14 @@ func TestPluralRules(t *testing.T) {
 			11: 2, // n%10 == 1 but n%100 == 11, so default case
 			21: 0, // n%10 == 1 && n%100 != 11
 		},
+		// Vietnamese (vi_VN) - always form 0
+		"vi_VN": {
+			0:   0,
+			1:   0,
+			2:   0,
+			5:   0,
+			100: 0,
+		},
 		// Chinese Simplified (zh_CN) - always form 0
 		"zh_CN": {
 			0:   0,

+ 641 - 0
internal/locale/translations/vi_VN.json

@@ -0,0 +1,641 @@
+{
+    "action.cancel": "hủy",
+    "action.documentation": "Tài liệu: %s",
+    "action.download": "Tải xuống",
+    "action.edit": "Sửa",
+    "action.home_screen": "Thêm vào màn hình chính",
+    "action.import": "Nhập",
+    "action.login": "Đăng nhập",
+    "action.or": "hoặc",
+    "action.remove": "Xóa",
+    "action.remove_feed": "Xóa nguồn tin này",
+    "action.save": "Lưu",
+    "action.subscribe": "Đăng ký",
+    "action.update": "Cập nhật",
+    "alert.account_linked": "Đã liên kết tài khoản bên ngoài của bạn!",
+    "alert.account_unlinked": "Đã hủy liên kết tài khoản bên ngoài của bạn!",
+    "alert.background_feed_refresh": "Tất cả nguồn tin đang được làm mới trong nền. Bạn có thể tiếp tục dùng Miniflux trong khi quá trình này đang chạy.",
+    "alert.feed_error": "Nguồn tin này đang gặp sự cố",
+    "alert.no_starred": "Không có bài viết nào được gắn sao.",
+    "alert.no_category": "Không có danh mục nào.",
+    "alert.no_category_entry": "Không có bài viết nào trong danh mục này.",
+    "alert.no_feed": "Bạn chưa có nguồn tin nào.",
+    "alert.no_feed_entry": "Nguồn tin này không có bài viết nào.",
+    "alert.no_feed_in_category": "Danh mục này không có nguồn tin nào.",
+    "alert.no_history": "Hiện chưa có lịch sử.",
+    "alert.no_search_result": "Không có kết quả nào cho tìm kiếm này.",
+    "alert.no_shared_entry": "Không có bài viết nào được chia sẻ.",
+    "alert.no_tag_entry": "Không có bài viết nào khớp với thẻ này.",
+    "alert.no_unread_entry": "Không có bài viết nào chưa đọc.",
+    "alert.no_user": "Bạn là người dùng duy nhất.",
+    "alert.prefs_saved": "Đã lưu tùy chọn!",
+    "alert.too_many_feeds_refresh": [
+        "Bạn đã yêu cầu làm mới nguồn tin quá nhiều lần. Vui lòng đợi %d phút rồi thử lại."
+    ],
+    "confirm.loading": "Đang xử lý…",
+    "confirm.no": "không",
+    "confirm.question": "Bạn có chắc chắn không?",
+    "confirm.question.refresh": "Bạn có chắc chắn muốn buộc làm mới không?",
+    "confirm.yes": "có",
+    "enclosure_media_controls.seek": "Tua:",
+    "enclosure_media_controls.seek.title": "Tua %s giây",
+    "enclosure_media_controls.speed": "Tốc độ:",
+    "enclosure_media_controls.speed.faster": "Nhanh hơn",
+    "enclosure_media_controls.speed.faster.title": "Nhanh hơn %sx",
+    "enclosure_media_controls.speed.reset": "Đặt lại",
+    "enclosure_media_controls.speed.reset.title": "Đặt lại tốc độ về 1x",
+    "enclosure_media_controls.speed.slower": "Chậm hơn",
+    "enclosure_media_controls.speed.slower.title": "Chậm hơn %sx",
+    "entry.starred.toast.off": "Đã bỏ gắn sao",
+    "entry.starred.toast.on": "Đã gắn sao",
+    "entry.starred.toggle.off": "Bỏ gắn sao",
+    "entry.starred.toggle.on": "Gắn sao",
+    "entry.comments.label": "Bình luận",
+    "entry.comments.title": "Xem bình luận",
+    "entry.estimated_reading_time": [
+        "%d phút đọc"
+    ],
+    "entry.external_link.label": "Liên kết ngoài",
+    "entry.save.completed": "Xong!",
+    "entry.save.label": "Lưu",
+    "entry.save.title": "Lưu bài viết này",
+    "entry.save.toast.completed": "Đã lưu bài viết",
+    "entry.scraper.completed": "Xong!",
+    "entry.scraper.label": "Tải xuống",
+    "entry.scraper.title": "Tải nội dung gốc",
+    "entry.share.label": "Chia sẻ",
+    "entry.share.title": "Chia sẻ bài viết này",
+    "entry.shared_entry.label": "Chia sẻ",
+    "entry.shared_entry.title": "Mở liên kết công khai",
+    "entry.state.loading": "Đang tải…",
+    "entry.state.saving": "Đang lưu…",
+    "entry.status.mark_as_read": "Đánh dấu đã đọc",
+    "entry.status.mark_as_unread": "Đánh dấu chưa đọc",
+    "entry.status.title": "Thay đổi trạng thái bài viết",
+    "entry.status.toast.read": "Đã đánh dấu là đã đọc",
+    "entry.status.toast.unread": "Đã đánh dấu là chưa đọc",
+    "entry.tags.label": "Thẻ:",
+    "entry.tags.more_tags_label": [
+        "Hiện thêm %d thẻ"
+    ],
+    "entry.unshare.label": "Hủy chia sẻ",
+    "error.api_key_already_exists": "Khóa API này đã tồn tại.",
+    "error.bad_credentials": "Tên người dùng hoặc mật khẩu không hợp lệ.",
+    "error.category_already_exists": "Danh mục này đã tồn tại.",
+    "error.category_not_found": "Danh mục này không tồn tại hoặc không thuộc về người dùng này.",
+    "error.database_error": "Lỗi cơ sở dữ liệu: %v.",
+    "error.different_passwords": "Mật khẩu không khớp.",
+    "error.duplicate_fever_username": "Đã có người khác dùng tên người dùng Fever này!",
+    "error.duplicate_googlereader_username": "Đã có người khác dùng tên người dùng Google Reader này!",
+    "error.linktaco_missing_required_fields": "Bắt buộc phải có token API và slug tổ chức của LinkTaco",
+    "error.googlereader_missing_required_fields": "Bắt buộc phải có tên người dùng và mật khẩu Google Reader",
+    "error.duplicate_linked_account": "Đã có người liên kết với nhà cung cấp này!",
+    "error.duplicated_feed": "Nguồn tin này đã tồn tại.",
+    "error.empty_file": "Tệp này trống.",
+    "error.entries_per_page_invalid": "Số bài viết mỗi trang không hợp lệ.",
+    "error.feed_already_exists": "Nguồn tin này đã tồn tại.",
+    "error.feed_category_not_found": "Danh mục này không tồn tại hoặc không thuộc về người dùng này.",
+    "error.feed_format_not_detected": "Không thể nhận diện định dạng nguồn tin: %v.",
+    "error.feed_invalid_blocklist_rule": "Quy tắc danh sách chặn không hợp lệ.",
+    "error.feed_invalid_keeplist_rule": "Quy tắc danh sách giữ lại không hợp lệ.",
+    "error.feed_invalid_rewrite_rule": "Quy tắc viết lại không hợp lệ.",
+    "error.feed_invalid_scraper_rule": "Quy tắc trích xuất nội dung không phải là bộ chọn CSS hợp lệ: %s.",
+    "error.feed_invalid_urlrewrite_rule": "Quy tắc viết lại URL không hợp lệ (định dạng mong đợi: rewrite(\"search\"|\"replacement\")).",
+    "error.feed_mandatory_fields": "URL và danh mục là bắt buộc.",
+    "error.feed_not_found": "Nguồn tin này không tồn tại hoặc không thuộc về người dùng này.",
+    "error.feed_rewrite_rule_invalid_syntax": "Cú pháp quy tắc viết lại không hợp lệ gần cột %d: %s (dùng \\\\ để biểu diễn dấu gạch chéo ngược).",
+    "error.feed_rewrite_rule_invalid_regex": "Quy tắc viết lại '%s' có biểu thức chính quy không hợp lệ: %s.",
+    "error.feed_rewrite_rule_invalid_selector": "Quy tắc viết lại '%s' có bộ chọn CSS không hợp lệ: %s.",
+    "error.feed_rewrite_rule_missing_args": "Quy tắc viết lại '%s' thiếu các đối số bắt buộc.",
+    "error.feed_rewrite_rule_unknown_name": "Quy tắc viết lại không xác định: '%s'.",
+    "error.feed_title_not_empty": "Tiêu đề nguồn tin không được để trống.",
+    "error.feed_url_not_empty": "URL nguồn tin không được để trống.",
+    "error.fields_mandatory": "Tất cả các trường đều bắt buộc.",
+    "error.http_bad_gateway": "Trang web hiện không khả dụng do lỗi cổng kết nối (bad gateway). Sự cố không nằm ở phía Miniflux. Vui lòng thử lại sau.",
+    "error.http_body_read": "Không thể đọc nội dung HTTP: %v.",
+    "error.http_client_error": "Lỗi máy khách HTTP: %v.",
+    "error.http_cloudflare_challenge": "Trang web này được bảo vệ bởi cơ chế kiểm tra bot của Cloudflare (CAPTCHA hoặc xác minh JavaScript). Miniflux không thể tự động vượt qua bước kiểm tra này.",
+    "error.http_empty_response": "Phản hồi HTTP trống. Có thể trang web này đang dùng cơ chế chống bot?",
+    "error.http_empty_response_body": "Nội dung phản hồi HTTP trống.",
+    "error.http_forbidden": "Truy cập vào trang web này bị cấm. Có thể trang web này có cơ chế chống bot?",
+    "error.http_gateway_timeout": "Trang web hiện không khả dụng do cổng kết nối hết thời gian chờ (gateway timeout). Sự cố không nằm ở phía Miniflux. Vui lòng thử lại sau.",
+    "error.http_internal_server_error": "Trang web hiện không khả dụng do lỗi máy chủ. Sự cố không nằm ở phía Miniflux. Vui lòng thử lại sau.",
+    "error.http_not_authorized": "Không được phép truy cập trang web này. Có thể tên người dùng hoặc mật khẩu không đúng.",
+    "error.http_resource_not_found": "Không tìm thấy tài nguyên được yêu cầu. Vui lòng kiểm tra lại URL.",
+    "error.http_response_too_large": "Phản hồi HTTP quá lớn. Bạn có thể tăng giới hạn kích thước phản hồi HTTP trong cài đặt chung (cần khởi động lại máy chủ).",
+    "error.http_service_unavailable": "Trang web hiện không khả dụng do lỗi máy chủ nội bộ. Sự cố không nằm ở phía Miniflux. Vui lòng thử lại sau.",
+    "error.http_too_many_requests": "Miniflux đã gửi quá nhiều yêu cầu tới trang web này. Vui lòng thử lại sau hoặc thay đổi cấu hình ứng dụng.",
+    "error.http_unexpected_status_code": "Trang web hiện không khả dụng do mã trạng thái HTTP không mong đợi: %d. Sự cố không nằm ở phía Miniflux. Vui lòng thử lại sau.",
+    "error.invalid_categories_sorting_order": "Thứ tự sắp xếp danh mục không hợp lệ.",
+    "error.invalid_current_password": "Mật khẩu hiện tại không đúng.",
+    "error.invalid_default_home_page": "Trang chủ mặc định không hợp lệ!",
+    "error.invalid_display_mode": "Chế độ hiển thị ứng dụng web không hợp lệ.",
+    "error.invalid_entry_direction": "Hướng sắp xếp bài viết không hợp lệ.",
+    "error.invalid_entry_order": "Thứ tự bài viết không hợp lệ.",
+    "error.invalid_feed_proxy_url": "URL proxy không hợp lệ.",
+    "error.invalid_feed_url": "URL nguồn tin không hợp lệ.",
+    "error.invalid_gesture_nav": "Cử chỉ điều hướng không hợp lệ.",
+    "error.invalid_language": "Ngôn ngữ không hợp lệ.",
+    "error.invalid_site_url": "URL trang web không hợp lệ.",
+    "error.invalid_theme": "Chủ đề không hợp lệ.",
+    "error.invalid_timezone": "Múi giờ không hợp lệ.",
+    "error.invalid_username": "Tên người dùng không hợp lệ. Chỉ được dùng chữ cái, chữ số và các ký tự _ - @ .",
+    "error.local_auth_disabled": "Xác thực cục bộ đã bị tắt. Không thể đổi mật khẩu.",
+    "error.network_operation": "Miniflux không thể kết nối tới trang web này do lỗi mạng: %v.",
+    "error.network_timeout": "Trang web này phản hồi quá chậm và yêu cầu đã hết thời gian chờ: %v",
+    "error.password_min_length": "Mật khẩu phải có ít nhất 6 ký tự.",
+    "error.proxy_url_not_empty": "URL proxy không được để trống.",
+    "error.settings_block_rule_fieldname_invalid": "Quy tắc chặn không hợp lệ: quy tắc #%d thiếu tên trường hợp lệ (Các lựa chọn: %s)",
+    "error.settings_block_rule_invalid_regex": "Quy tắc chặn không hợp lệ: mẫu của quy tắc #%d không phải là biểu thức chính quy hợp lệ",
+    "error.settings_block_rule_regex_required": "Quy tắc chặn không hợp lệ: chưa cung cấp mẫu cho quy tắc #%d",
+    "error.settings_block_rule_separator_required": "Quy tắc chặn không hợp lệ: mẫu của quy tắc #%d phải được phân tách bằng dấu '='",
+    "error.settings_invalid_domain_list": "Danh sách tên miền không hợp lệ. Vui lòng nhập danh sách tên miền phân tách bằng dấu cách.",
+    "error.settings_keep_rule_fieldname_invalid": "Quy tắc giữ lại không hợp lệ: quy tắc #%d thiếu tên trường hợp lệ (Các lựa chọn: %s)",
+    "error.settings_keep_rule_invalid_regex": "Quy tắc giữ lại không hợp lệ: mẫu của quy tắc #%d không phải là biểu thức chính quy hợp lệ",
+    "error.settings_keep_rule_regex_required": "Quy tắc giữ lại không hợp lệ: chưa cung cấp mẫu cho quy tắc #%d",
+    "error.settings_keep_rule_separator_required": "Quy tắc giữ lại không hợp lệ: mẫu của quy tắc #%d phải được phân tách bằng dấu '='",
+    "error.settings_mandatory_fields": "Các trường tên người dùng, chủ đề, ngôn ngữ và múi giờ là bắt buộc.",
+    "error.settings_media_playback_rate_range": "Tốc độ phát nằm ngoài phạm vi cho phép",
+    "error.settings_reading_speed_is_positive": "Tốc độ đọc phải là số nguyên dương.",
+    "error.site_url_not_empty": "URL trang web không được để trống.",
+    "error.subscription_not_found": "Không tìm thấy nguồn tin nào.",
+    "error.title_required": "Tiêu đề là bắt buộc.",
+    "error.tls_error": "Lỗi TLS: %q. Bạn có thể tắt xác minh TLS trong cài đặt nguồn tin nếu muốn.",
+    "error.unable_to_create_api_key": "Không thể tạo khóa API này.",
+    "error.unable_to_create_category": "Không thể tạo danh mục này.",
+    "error.unable_to_create_user": "Không thể tạo người dùng này.",
+    "error.unable_to_detect_rssbridge": "Không thể phát hiện nguồn tin bằng RSS-Bridge: %v.",
+    "error.unable_to_parse_feed": "Không thể phân tích nguồn tin này: %v.",
+    "error.unable_to_parse_html_document": "Không thể phân tích tài liệu HTML: %v.",
+    "error.unable_to_update_category": "Không thể cập nhật danh mục này.",
+    "error.unable_to_update_feed": "Không thể cập nhật nguồn tin này.",
+    "error.unable_to_update_user": "Không thể cập nhật người dùng này.",
+    "error.unlink_account_without_password": "Bạn phải đặt mật khẩu, nếu không bạn sẽ không thể đăng nhập lại.",
+    "error.user_already_exists": "Người dùng này đã tồn tại.",
+    "error.user_mandatory_fields": "Tên người dùng là bắt buộc.",
+    "form.api_key.label.description": "Nhãn khóa API",
+    "form.category.hide_globally": "Ẩn bài viết khỏi danh sách chưa đọc chung",
+    "form.category.label.title": "Tiêu đề",
+    "form.feed.fieldset.general": "Chung",
+    "form.feed.fieldset.integration": "Dịch vụ bên thứ ba",
+    "form.feed.fieldset.network_settings": "Cài đặt mạng",
+    "form.feed.fieldset.rules": "Quy tắc",
+    "form.feed.label.allow_self_signed_certificates": "Cho phép chứng chỉ tự ký hoặc không hợp lệ",
+    "form.feed.label.apprise_service_urls": "Danh sách URL dịch vụ Apprise, phân tách bằng dấu phẩy",
+    "form.feed.label.block_filter_entry_rules": "Quy tắc chặn bài viết",
+    "form.feed.label.blocklist_rules": "Bộ lọc chặn dựa trên biểu thức chính quy",
+    "form.feed.label.category": "Danh mục",
+    "form.feed.label.cookie": "Đặt cookie",
+    "form.feed.label.crawler": "Tải nội dung gốc",
+    "form.feed.label.ignore_entry_updates": "Bỏ qua cập nhật của bài viết",
+    "form.feed.label.description": "Mô tả",
+    "form.feed.label.disable_http2": "Tắt HTTP/2 để tránh bị lấy dấu vân tay (fingerprinting)",
+    "form.feed.label.disabled": "Không làm mới nguồn tin này",
+    "form.feed.label.feed_password": "Mật khẩu nguồn tin",
+    "form.feed.label.feed_url": "URL nguồn tin",
+    "form.feed.label.feed_username": "Tên người dùng nguồn tin",
+    "form.feed.label.fetch_via_proxy": "Dùng proxy được cấu hình ở cấp ứng dụng",
+    "form.feed.label.hide_globally": "Ẩn bài viết khỏi danh sách chưa đọc chung",
+    "form.feed.label.ignore_http_cache": "Bỏ qua bộ nhớ đệm HTTP",
+    "form.feed.label.keep_filter_entry_rules": "Quy tắc cho phép bài viết",
+    "form.feed.label.keeplist_rules": "Bộ lọc giữ lại dựa trên biểu thức chính quy",
+    "form.feed.label.no_media_player": "Không dùng trình phát đa phương tiện (âm thanh/video)",
+    "form.feed.label.ntfy_activate": "Gửi bài viết tới ntfy",
+    "form.feed.label.ntfy_default_priority": "Mức ưu tiên mặc định của Ntfy",
+    "form.feed.label.ntfy_high_priority": "Mức ưu tiên cao của Ntfy",
+    "form.feed.label.ntfy_low_priority": "Mức ưu tiên thấp của Ntfy",
+    "form.feed.label.ntfy_max_priority": "Mức ưu tiên tối đa của Ntfy",
+    "form.feed.label.ntfy_min_priority": "Mức ưu tiên tối thiểu của Ntfy",
+    "form.feed.label.ntfy_priority": "Mức ưu tiên Ntfy",
+    "form.feed.label.ntfy_topic": "Chủ đề Ntfy (không bắt buộc)",
+    "form.feed.label.proxy_url": "URL proxy",
+    "form.feed.label.pushover_activate": "Gửi bài viết tới Pushover",
+    "form.feed.label.pushover_default_priority": "Mức ưu tiên mặc định",
+    "form.feed.label.pushover_high_priority": "Mức ưu tiên cao",
+    "form.feed.label.pushover_low_priority": "Mức ưu tiên thấp",
+    "form.feed.label.pushover_max_priority": "Mức ưu tiên tối đa",
+    "form.feed.label.pushover_min_priority": "Mức ưu tiên tối thiểu",
+    "form.feed.label.pushover_priority": "Mức ưu tiên tin nhắn Pushover",
+    "form.feed.label.rewrite_rules": "Quy tắc viết lại nội dung",
+    "form.feed.label.scraper_rules": "Quy tắc trích xuất nội dung",
+    "form.feed.label.site_url": "URL trang web",
+    "form.feed.label.title": "Tiêu đề",
+    "form.feed.label.urlrewrite_rules": "Quy tắc viết lại URL",
+    "form.feed.label.user_agent": "Ghi đè User Agent mặc định",
+    "form.feed.label.webhook_url": "Ghi đè URL webhook",
+    "form.import.label.file": "Tệp OPML",
+    "form.import.label.url": "URL",
+    "form.integration.archiveorg_activate": "Gửi bài viết tới archive.org",
+    "form.integration.apprise_activate": "Gửi bài viết tới Apprise",
+    "form.integration.apprise_services_url": "Danh sách URL dịch vụ Apprise, phân tách bằng dấu phẩy",
+    "form.integration.apprise_url": "URL API Apprise",
+    "form.integration.betula_activate": "Lưu bài viết vào Betula",
+    "form.integration.betula_token": "Token Betula",
+    "form.integration.betula_url": "URL máy chủ Betula",
+    "form.integration.cubox_activate": "Lưu bài viết vào Cubox",
+    "form.integration.cubox_api_link": "Liên kết API Cubox",
+    "form.integration.discord_activate": "Gửi bài viết tới Discord",
+    "form.integration.discord_webhook_link": "Liên kết webhook Discord",
+    "form.integration.espial_activate": "Lưu bài viết vào Espial",
+    "form.integration.espial_api_key": "Khóa API Espial",
+    "form.integration.espial_endpoint": "Điểm cuối API Espial",
+    "form.integration.espial_tags": "Thẻ Espial",
+    "form.integration.fever_activate": "Bật API Fever",
+    "form.integration.fever_endpoint": "Điểm cuối API Fever:",
+    "form.integration.fever_password": "Mật khẩu Fever",
+    "form.integration.fever_username": "Tên người dùng Fever",
+    "form.integration.googlereader_activate": "Bật API Google Reader",
+    "form.integration.googlereader_endpoint": "Điểm cuối API Google Reader:",
+    "form.integration.googlereader_password": "Mật khẩu Google Reader",
+    "form.integration.googlereader_username": "Tên người dùng Google Reader",
+    "form.integration.gotify_activate": "Gửi bài viết tới Gotify",
+    "form.integration.gotify_priority": "Mức ưu tiên Gotify",
+    "form.integration.gotify_server_url": "URL máy chủ Gotify",
+    "form.integration.gotify_token": "Token Gotify",
+    "form.integration.instapaper_activate": "Lưu bài viết vào Instapaper",
+    "form.integration.instapaper_password": "Mật khẩu Instapaper",
+    "form.integration.instapaper_username": "Tên người dùng Instapaper",
+    "form.integration.karakeep_activate": "Lưu bài viết vào Karakeep",
+    "form.integration.karakeep_api_key": "Khóa API Karakeep",
+    "form.integration.karakeep_url": "Điểm cuối API Karakeep",
+    "form.integration.karakeep_tags": "Thẻ Karakeep",
+    "form.integration.linkace_activate": "Lưu bài viết vào LinkAce",
+    "form.integration.linkace_api_key": "Khóa API LinkAce",
+    "form.integration.linkace_check_disabled": "Tắt kiểm tra liên kết",
+    "form.integration.linkace_endpoint": "Điểm cuối API LinkAce",
+    "form.integration.linkace_is_private": "Đánh dấu liên kết là riêng tư",
+    "form.integration.linkace_tags": "Thẻ LinkAce",
+    "form.integration.linkding_activate": "Lưu bài viết vào Linkding",
+    "form.integration.linkding_api_key": "Khóa API Linkding",
+    "form.integration.linkding_bookmark": "Đặt dấu trang ở trạng thái chưa đọc",
+    "form.integration.linkding_endpoint": "Điểm cuối API Linkding",
+    "form.integration.linkding_tags": "Thẻ Linkding",
+    "form.integration.linktaco_activate": "Lưu bài viết vào LinkTaco",
+    "form.integration.linktaco_api_token": "Token API LinkTaco",
+    "form.integration.linktaco_api_token_hint": "Lấy token truy cập cá nhân của bạn tại",
+    "form.integration.linktaco_org_slug": "Slug tổ chức",
+    "form.integration.linktaco_tags": "Thẻ (tối đa 10, phân tách bằng dấu phẩy)",
+    "form.integration.linktaco_tags_hint": "Tối đa 10 thẻ, phân tách bằng dấu phẩy",
+    "form.integration.linktaco_visibility": "Chế độ hiển thị",
+    "form.integration.linktaco_visibility_public": "Công khai",
+    "form.integration.linktaco_visibility_private": "Riêng tư",
+    "form.integration.linktaco_visibility_hint": "Chế độ hiển thị riêng tư (PRIVATE) yêu cầu tài khoản LinkTaco trả phí",
+    "form.integration.linkwarden_activate": "Lưu bài viết vào Linkwarden",
+    "form.integration.linkwarden_api_key": "Khóa API Linkwarden",
+    "form.integration.linkwarden_endpoint": "URL gốc Linkwarden",
+    "form.integration.linkwarden_collection_id": "ID bộ sưu tập Linkwarden",
+    "form.integration.matrix_bot_activate": "Gửi bài viết mới tới Matrix",
+    "form.integration.matrix_bot_chat_id": "ID phòng Matrix",
+    "form.integration.matrix_bot_password": "Mật khẩu người dùng Matrix",
+    "form.integration.matrix_bot_url": "URL máy chủ Matrix",
+    "form.integration.matrix_bot_user": "Tên người dùng Matrix",
+    "form.integration.notion_activate": "Lưu bài viết vào Notion",
+    "form.integration.notion_page_id": "ID trang Notion",
+    "form.integration.notion_token": "Token bí mật Notion",
+    "form.integration.ntfy_activate": "Gửi bài viết tới ntfy",
+    "form.integration.ntfy_api_token": "Token API Ntfy (không bắt buộc)",
+    "form.integration.ntfy_icon_url": "URL biểu tượng Ntfy (không bắt buộc)",
+    "form.integration.ntfy_internal_links": "Dùng liên kết nội bộ khi nhấp (không bắt buộc)",
+    "form.integration.ntfy_password": "Mật khẩu Ntfy (không bắt buộc)",
+    "form.integration.ntfy_topic": "Chủ đề Ntfy (mặc định, dùng khi nguồn tin không đặt chủ đề riêng)",
+    "form.integration.ntfy_url": "URL Ntfy (không bắt buộc, mặc định là ntfy.sh)",
+    "form.integration.ntfy_username": "Tên người dùng Ntfy (không bắt buộc)",
+    "form.integration.nunux_keeper_activate": "Lưu bài viết vào Nunux Keeper",
+    "form.integration.nunux_keeper_api_key": "Khóa API Nunux Keeper",
+    "form.integration.nunux_keeper_endpoint": "Điểm cuối API Nunux Keeper",
+    "form.integration.omnivore_activate": "Lưu bài viết vào Omnivore",
+    "form.integration.omnivore_api_key": "Khóa API Omnivore",
+    "form.integration.omnivore_url": "Điểm cuối API Omnivore",
+    "form.integration.pinboard_activate": "Lưu bài viết vào Pinboard",
+    "form.integration.pinboard_bookmark": "Đặt dấu trang ở trạng thái chưa đọc",
+    "form.integration.pinboard_tags": "Thẻ Pinboard",
+    "form.integration.pinboard_token": "Token API Pinboard",
+    "form.integration.pushover_activate": "Gửi bài viết tới Pushover",
+    "form.integration.pushover_device": "Thiết bị Pushover (không bắt buộc)",
+    "form.integration.pushover_prefix": "Tiền tố URL Pushover (không bắt buộc)",
+    "form.integration.pushover_token": "Token API ứng dụng Pushover",
+    "form.integration.pushover_user": "Khóa người dùng Pushover",
+    "form.integration.raindrop_activate": "Lưu bài viết vào Raindrop",
+    "form.integration.raindrop_collection_id": "ID bộ sưu tập",
+    "form.integration.raindrop_tags": "Thẻ (phân tách bằng dấu phẩy)",
+    "form.integration.raindrop_token": "Token (thử nghiệm)",
+    "form.integration.readeck_activate": "Lưu bài viết vào Readeck",
+    "form.integration.readeck_api_key": "Khóa API Readeck",
+    "form.integration.readeck_endpoint": "URL Readeck",
+    "form.integration.readeck_labels": "Nhãn Readeck",
+    "form.integration.readeck_only_url": "Chỉ gửi URL (thay vì toàn bộ nội dung)",
+    "form.integration.readeck_push_activate": "Tự động gửi bài viết mới tới Readeck",
+    "form.integration.readwise_activate": "Lưu bài viết vào Readwise Reader",
+    "form.integration.readwise_api_key": "Token truy cập Readwise Reader",
+    "form.integration.readwise_api_key_link": "Lấy token truy cập Readwise của bạn",
+    "form.integration.rssbridge_activate": "Kiểm tra RSS-Bridge khi thêm đăng ký",
+    "form.integration.rssbridge_token": "Token xác thực RSS-Bridge",
+    "form.integration.rssbridge_url": "URL máy chủ RSS-Bridge",
+    "form.integration.shaarli_activate": "Lưu bài viết vào Shaarli",
+    "form.integration.shaarli_api_secret": "Khóa bí mật API Shaarli",
+    "form.integration.shaarli_endpoint": "URL Shaarli",
+    "form.integration.shiori_activate": "Lưu bài viết vào Shiori",
+    "form.integration.shiori_endpoint": "Điểm cuối API Shiori",
+    "form.integration.shiori_password": "Mật khẩu Shiori",
+    "form.integration.shiori_username": "Tên người dùng Shiori",
+    "form.integration.slack_activate": "Gửi bài viết tới Slack",
+    "form.integration.slack_webhook_link": "Liên kết webhook Slack",
+    "form.integration.telegram_bot_activate": "Gửi bài viết mới tới cuộc trò chuyện Telegram",
+    "form.integration.telegram_bot_disable_buttons": "Tắt các nút",
+    "form.integration.telegram_bot_disable_notification": "Tắt thông báo",
+    "form.integration.telegram_bot_disable_web_page_preview": "Tắt xem trước trang web",
+    "form.integration.telegram_bot_token": "Token bot",
+    "form.integration.telegram_chat_id": "ID cuộc trò chuyện",
+    "form.integration.telegram_topic_id": "ID chủ đề",
+    "form.integration.wallabag_activate": "Lưu bài viết vào Wallabag",
+    "form.integration.wallabag_client_id": "ID máy khách Wallabag",
+    "form.integration.wallabag_client_secret": "Khóa bí mật máy khách Wallabag",
+    "form.integration.wallabag_endpoint": "URL gốc Wallabag",
+    "form.integration.wallabag_only_url": "Chỉ gửi URL (thay vì toàn bộ nội dung)",
+    "form.integration.wallabag_password": "Mật khẩu Wallabag",
+    "form.integration.wallabag_username": "Tên người dùng Wallabag",
+    "form.integration.wallabag_tags": "Thẻ Wallabag",
+    "form.integration.webhook_activate": "Bật webhook",
+    "form.integration.webhook_secret": "Khóa bí mật webhook",
+    "form.integration.webhook_url": "URL webhook mặc định",
+    "form.prefs.fieldset.application_settings": "Cài đặt ứng dụng",
+    "form.prefs.fieldset.authentication_settings": "Xác thực bằng mật khẩu",
+    "form.prefs.fieldset.google_authentication": "Xác thực Google",
+    "form.prefs.fieldset.oidc_authentication": "Xác thực %s",
+    "form.prefs.fieldset.global_feed_settings": "Cài đặt nguồn tin chung",
+    "form.prefs.fieldset.reader_settings": "Cài đặt trình đọc",
+    "form.prefs.help.external_font_hosts": "Danh sách máy chủ phông chữ bên ngoài được phép, phân tách bằng dấu cách. Ví dụ: \"fonts.gstatic.com fonts.googleapis.com\".",
+    "form.prefs.label.always_open_external_links": "Đọc bài viết bằng cách mở liên kết ngoài",
+    "form.prefs.label.categories_sorting_order": "Sắp xếp danh mục",
+    "form.prefs.label.cjk_reading_speed": "Tốc độ đọc tiếng Trung, tiếng Hàn và tiếng Nhật (ký tự mỗi phút)",
+    "form.prefs.label.custom_css": "CSS tùy chỉnh",
+    "form.prefs.label.custom_js": "JavaScript tùy chỉnh",
+    "form.prefs.label.default_home_page": "Trang chủ mặc định",
+    "form.prefs.label.default_reading_speed": "Tốc độ đọc các ngôn ngữ khác (từ mỗi phút)",
+    "form.prefs.label.display_mode": "Chế độ hiển thị Progressive Web App (PWA)",
+    "form.prefs.label.entries_per_page": "Số bài viết mỗi trang",
+    "form.prefs.label.entry_order": "Cột sắp xếp bài viết",
+    "form.prefs.label.entry_sorting": "Sắp xếp bài viết",
+    "form.prefs.label.entry_swipe": "Bật vuốt bài viết trên màn hình cảm ứng",
+    "form.prefs.label.external_font_hosts": "Máy chủ phông chữ bên ngoài",
+    "form.prefs.label.gesture_nav": "Cử chỉ để chuyển giữa các bài viết",
+    "form.prefs.label.keyboard_shortcuts": "Bật phím tắt",
+    "form.prefs.label.language": "Ngôn ngữ",
+    "form.prefs.label.mark_read_manually": "Đánh dấu bài viết là đã đọc theo cách thủ công",
+    "form.prefs.label.mark_read_on_media_completion": "Chỉ đánh dấu đã đọc khi phát âm thanh/video đạt 90%%",
+    "form.prefs.label.mark_read_on_view": "Tự động đánh dấu bài viết là đã đọc khi xem",
+    "form.prefs.label.mark_read_on_view_or_media_completion": "Đánh dấu bài viết là đã đọc khi xem. Với âm thanh/video, đánh dấu đã đọc khi phát được 90%%",
+    "form.prefs.label.media_playback_rate": "Tốc độ phát âm thanh/video",
+    "form.prefs.label.open_external_links_in_new_tab": "Mở liên kết ngoài trong thẻ mới (thêm target=\"_blank\" vào liên kết)",
+    "form.prefs.label.show_reading_time": "Hiển thị thời gian đọc ước tính của bài viết",
+    "form.prefs.label.theme": "Chủ đề",
+    "form.prefs.label.timezone": "Múi giờ",
+    "form.prefs.select.alphabetical": "Theo bảng chữ cái",
+    "form.prefs.select.browser": "Trình duyệt",
+    "form.prefs.select.created_time": "Thời gian tạo bài viết",
+    "form.prefs.select.fullscreen": "Toàn màn hình",
+    "form.prefs.select.minimal_ui": "Tối giản",
+    "form.prefs.select.none": "Không",
+    "form.prefs.select.older_first": "Bài viết cũ trước",
+    "form.prefs.select.publish_time": "Thời gian đăng bài viết",
+    "form.prefs.select.recent_first": "Bài viết mới trước",
+    "form.prefs.select.standalone": "Độc lập",
+    "form.prefs.select.swipe": "Vuốt",
+    "form.prefs.select.tap": "Chạm hai lần",
+    "form.prefs.select.unread_count": "Số bài viết chưa đọc",
+    "form.submit.loading": "Đang tải…",
+    "form.submit.saving": "Đang lưu…",
+    "form.user.label.admin": "Quản trị viên",
+    "form.user.label.confirmation": "Xác nhận mật khẩu",
+    "form.user.label.current_password": "Mật khẩu hiện tại",
+    "form.user.label.password": "Mật khẩu",
+    "form.user.label.username": "Tên người dùng",
+    "menu.about": "Giới thiệu",
+    "menu.add_feed": "Thêm nguồn tin",
+    "menu.add_user": "Thêm người dùng",
+    "menu.api_keys": "Khóa API",
+    "menu.authentication": "Xác thực",
+    "menu.categories": "Danh mục",
+    "menu.create_api_key": "Tạo khóa API mới",
+    "menu.create_category": "Tạo danh mục",
+    "menu.edit_category": "Sửa",
+    "menu.edit_feed": "Sửa",
+    "menu.export": "Xuất",
+    "menu.feed_entries": "Bài viết",
+    "menu.feeds": "Nguồn tin",
+    "menu.flush_history": "Xóa lịch sử",
+    "menu.history": "Lịch sử",
+    "menu.home_page": "Trang chủ",
+    "menu.import": "Nhập",
+    "menu.integrations": "Tích hợp",
+    "menu.logout": "Đăng xuất",
+    "menu.mark_all_as_read": "Đánh dấu tất cả là đã đọc",
+    "menu.mark_page_as_read": "Đánh dấu trang này là đã đọc",
+    "menu.preferences": "Tùy chọn",
+    "menu.refresh_all_feeds": "Làm mới tất cả nguồn tin trong nền",
+    "menu.refresh_feed": "Làm mới",
+    "menu.search": "Tìm kiếm",
+    "menu.sessions": "Phiên",
+    "menu.settings": "Cài đặt",
+    "menu.shared_entries": "Bài viết đã chia sẻ",
+    "menu.show_all_entries": "Hiện tất cả bài viết",
+    "menu.show_only_starred_entries": "Chỉ hiện bài viết đã gắn sao",
+    "menu.show_only_unread_entries": "Chỉ hiện bài viết chưa đọc",
+    "menu.starred": "Đã gắn sao",
+    "menu.title": "Menu",
+    "menu.unread": "Chưa đọc",
+    "menu.users": "Người dùng",
+    "page.about.authors_label": "Tác giả:",
+    "page.about.authors_value": "Frédéric Guillot và những người đóng góp",
+    "page.about.build_date": "Ngày biên dịch:",
+    "page.about.credits": "Ghi công",
+    "page.about.db_usage": "Dung lượng cơ sở dữ liệu:",
+    "page.about.git_commit": "Git commit:",
+    "page.about.global_config_options": "Tùy chọn cấu hình chung",
+    "page.about.go_version": "Phiên bản Go:",
+    "page.about.license": "Giấy phép:",
+    "page.about.postgres_version": "Phiên bản Postgres:",
+    "page.about.title": "Giới thiệu",
+    "page.about.version": "Phiên bản:",
+    "page.add_feed.choose_feed": "Chọn một nguồn tin",
+    "page.add_feed.label.url": "URL",
+    "page.add_feed.legend.advanced_options": "Tùy chọn nâng cao",
+    "page.add_feed.no_category": "Chưa có danh mục nào. Bạn phải có ít nhất một danh mục.",
+    "page.add_feed.submit": "Tìm nguồn tin",
+    "page.add_feed.title": "Nguồn tin mới",
+    "page.api_keys.never_used": "Chưa từng dùng",
+    "page.api_keys.table.actions": "Thao tác",
+    "page.api_keys.table.created_at": "Ngày tạo",
+    "page.api_keys.table.description": "Mô tả",
+    "page.api_keys.table.last_used_at": "Lần dùng cuối",
+    "page.api_keys.table.token": "Token",
+    "page.api_keys.title": "Khóa API",
+    "page.authentication.title": "Xác thực",
+    "page.categories.entries": "Bài viết",
+    "page.categories.feed_count": [
+        "Có %d nguồn tin."
+    ],
+    "page.categories.feeds": "Nguồn tin",
+    "page.categories.no_feed": "Không có nguồn tin.",
+    "page.categories.title": "Danh mục",
+    "page.categories_count": [
+        "%d danh mục"
+    ],
+    "page.category_label": "Danh mục: %s",
+    "page.edit_category.title": "Sửa danh mục: %s",
+    "page.edit_feed.etag_header": "Header ETag:",
+    "page.edit_feed.last_check": "Lần kiểm tra cuối:",
+    "page.edit_feed.last_modified_header": "Header LastModified:",
+    "page.edit_feed.last_parsing_error": "Lỗi phân tích gần nhất",
+    "page.edit_feed.no_header": "Không có",
+    "page.edit_feed.title": "Sửa nguồn tin: %s",
+    "page.edit_user.title": "Sửa người dùng: %s",
+    "page.entry.attachments": "Tệp đính kèm",
+    "page.feeds.error_count": [
+        "%d lỗi"
+    ],
+    "page.feeds.last_check": "Lần kiểm tra cuối:",
+    "page.feeds.next_check": "Lần kiểm tra tiếp theo:",
+    "page.feeds.read_counter": "Số bài viết đã đọc",
+    "page.feeds.title": "Nguồn tin",
+    "page.footer.elevator": "Lên đầu trang",
+    "page.history.title": "Lịch sử",
+    "page.import.title": "Nhập",
+    "page.integration.bookmarklet": "Bookmarklet",
+    "page.integration.bookmarklet.help": "Liên kết đặc biệt này cho phép bạn đăng ký trực tiếp một trang web bằng dấu trang trong trình duyệt.",
+    "page.integration.bookmarklet.instructions": "Kéo và thả liên kết này vào dấu trang của bạn.",
+    "page.integration.bookmarklet.name": "Thêm vào Miniflux",
+    "page.integration.miniflux_api": "API Miniflux",
+    "page.integration.miniflux_api_endpoint": "Điểm cuối API",
+    "page.integration.miniflux_api_password": "Mật khẩu",
+    "page.integration.miniflux_api_password_value": "Mật khẩu tài khoản của bạn",
+    "page.integration.miniflux_api_username": "Tên người dùng",
+    "page.integrations.title": "Tích hợp",
+    "page.keyboard_shortcuts.close_modal": "Đóng hộp thoại",
+    "page.keyboard_shortcuts.download_content": "Tải nội dung gốc",
+    "page.keyboard_shortcuts.go_to_bottom_item": "Đến mục cuối cùng",
+    "page.keyboard_shortcuts.go_to_categories": "Đến danh mục",
+    "page.keyboard_shortcuts.go_to_feed": "Đến nguồn tin",
+    "page.keyboard_shortcuts.go_to_feeds": "Đến danh sách nguồn tin",
+    "page.keyboard_shortcuts.go_to_history": "Đến lịch sử",
+    "page.keyboard_shortcuts.go_to_next_item": "Đến mục tiếp theo",
+    "page.keyboard_shortcuts.go_to_next_page": "Đến trang tiếp theo",
+    "page.keyboard_shortcuts.go_to_previous_item": "Đến mục trước",
+    "page.keyboard_shortcuts.go_to_previous_page": "Đến trang trước",
+    "page.keyboard_shortcuts.go_to_search": "Chuyển đến ô tìm kiếm",
+    "page.keyboard_shortcuts.go_to_settings": "Đến cài đặt",
+    "page.keyboard_shortcuts.go_to_starred": "Đến mục đã gắn sao",
+    "page.keyboard_shortcuts.go_to_top_item": "Đến mục đầu tiên",
+    "page.keyboard_shortcuts.go_to_unread": "Đến mục chưa đọc",
+    "page.keyboard_shortcuts.mark_page_as_read": "Đánh dấu trang hiện tại là đã đọc",
+    "page.keyboard_shortcuts.open_comments": "Mở liên kết bình luận",
+    "page.keyboard_shortcuts.open_comments_same_window": "Mở liên kết bình luận trong thẻ hiện tại",
+    "page.keyboard_shortcuts.open_item": "Mở mục đã chọn",
+    "page.keyboard_shortcuts.open_original": "Mở liên kết gốc",
+    "page.keyboard_shortcuts.open_original_same_window": "Mở liên kết gốc trong thẻ hiện tại",
+    "page.keyboard_shortcuts.refresh_all_feeds": "Làm mới tất cả nguồn tin trong nền",
+    "page.keyboard_shortcuts.remove_feed": "Xóa nguồn tin này",
+    "page.keyboard_shortcuts.save_article": "Lưu bài viết",
+    "page.keyboard_shortcuts.scroll_item_to_top": "Cuộn mục lên đầu",
+    "page.keyboard_shortcuts.show_keyboard_shortcuts": "Hiện phím tắt",
+    "page.keyboard_shortcuts.subtitle.actions": "Thao tác",
+    "page.keyboard_shortcuts.subtitle.items": "Điều hướng mục",
+    "page.keyboard_shortcuts.subtitle.pages": "Điều hướng trang",
+    "page.keyboard_shortcuts.subtitle.sections": "Điều hướng phần",
+    "page.keyboard_shortcuts.title": "Phím tắt",
+    "page.keyboard_shortcuts.toggle_star_status": "Bật/tắt gắn sao",
+    "page.keyboard_shortcuts.toggle_entry_attachments": "Mở/đóng tệp đính kèm của bài viết",
+    "page.keyboard_shortcuts.toggle_read_status_next": "Đổi trạng thái đã đọc/chưa đọc, chuyển đến mục tiếp theo",
+    "page.keyboard_shortcuts.toggle_read_status_prev": "Đổi trạng thái đã đọc/chưa đọc, chuyển đến mục trước",
+    "page.login.google_signin": "Đăng nhập bằng Google",
+    "page.login.oidc_signin": "Đăng nhập bằng %s",
+    "page.login.title": "Đăng nhập",
+    "page.login.webauthn_login": "Đăng nhập bằng khóa truy cập",
+    "page.login.webauthn_login.error": "Không thể đăng nhập bằng khóa truy cập",
+    "page.new_api_key.title": "Khóa API mới",
+    "page.new_category.title": "Danh mục mới",
+    "page.new_user.title": "Người dùng mới",
+    "page.offline.message": "Bạn đang ngoại tuyến",
+    "page.offline.refresh_page": "Hãy thử tải lại trang",
+    "page.offline.title": "Chế độ ngoại tuyến",
+    "page.read_entry_count": [
+        "%d bài viết đã đọc"
+    ],
+    "page.search.title": "Kết quả tìm kiếm",
+    "page.sessions.table.actions": "Thao tác",
+    "page.sessions.table.current_session": "Phiên hiện tại",
+    "page.sessions.table.date": "Ngày",
+    "page.sessions.table.ip": "Địa chỉ IP",
+    "page.sessions.table.user_agent": "User Agent",
+    "page.sessions.title": "Phiên",
+    "page.settings.link_google_account": "Liên kết tài khoản Google của tôi",
+    "page.settings.link_oidc_account": "Liên kết tài khoản %s của tôi",
+    "page.settings.title": "Cài đặt",
+    "page.settings.unlink_google_account": "Hủy liên kết tài khoản Google của tôi",
+    "page.settings.unlink_oidc_account": "Hủy liên kết tài khoản %s của tôi",
+    "page.settings.webauthn.actions": "Thao tác",
+    "page.settings.webauthn.added_on": "Ngày thêm",
+    "page.settings.webauthn.delete": [
+        "Xóa %d khóa truy cập"
+    ],
+    "page.settings.webauthn.last_seen_on": "Lần dùng cuối",
+    "page.settings.webauthn.passkey_name": "Tên khóa truy cập",
+    "page.settings.webauthn.passkeys": "Xác thực bằng khóa truy cập",
+    "page.settings.webauthn.register": "Đăng ký khóa truy cập",
+    "page.settings.webauthn.register.error": "Không thể đăng ký khóa truy cập",
+    "page.shared_entries.title": "Bài viết đã chia sẻ",
+    "page.shared_entries_count": [
+        "%d bài viết đã chia sẻ"
+    ],
+    "page.starred.title": "Đã gắn sao",
+    "page.starred_entry_count": [
+        "%d bài viết đã gắn sao"
+    ],
+    "page.total_entry_count": [
+        "Tổng cộng %d bài viết"
+    ],
+    "page.unread.title": "Chưa đọc",
+    "page.unread_entry_count": [
+        "%d bài viết chưa đọc"
+    ],
+    "page.users.actions": "Thao tác",
+    "page.users.admin.no": "Không",
+    "page.users.admin.yes": "Có",
+    "page.users.is_admin": "Quản trị viên",
+    "page.users.last_login": "Lần đăng nhập cuối",
+    "page.users.never_logged": "Chưa bao giờ",
+    "page.users.title": "Người dùng",
+    "page.users.username": "Tên người dùng",
+    "page.webauthn_rename.title": "Đổi tên khóa truy cập",
+    "pagination.first": "Đầu tiên",
+    "pagination.last": "Cuối cùng",
+    "pagination.next": "Tiếp",
+    "pagination.previous": "Trước",
+    "search.label": "Tìm kiếm",
+    "search.placeholder": "Tìm kiếm…",
+    "search.submit": "Tìm kiếm",
+    "skip_to_content": "Chuyển đến nội dung",
+    "time_elapsed.days": [
+        "%d ngày trước"
+    ],
+    "time_elapsed.hours": [
+        "%d giờ trước"
+    ],
+    "time_elapsed.minutes": [
+        "%d phút trước"
+    ],
+    "time_elapsed.months": [
+        "%d tháng trước"
+    ],
+    "time_elapsed.not_yet": "chưa có",
+    "time_elapsed.now": "vừa xong",
+    "time_elapsed.weeks": [
+        "%d tuần trước"
+    ],
+    "time_elapsed.years": [
+        "%d năm trước"
+    ],
+    "time_elapsed.yesterday": "hôm qua",
+    "tooltip.keyboard_shortcuts": "Phím tắt: %s",
+    "tooltip.logged_user": "Đã đăng nhập với tên %s"
+}