Merge branch 'dev' into jajaja

# Conflicts:
#	db/postgresql/schema.prisma
#	pnpm-lock.yaml
#	src/app/(main)/websites/[websiteId]/WebsiteDetailsPage.tsx
#	src/app/(main)/websites/[websiteId]/compare/WebsiteComparePage.tsx
#	src/app/api/reports/route.ts
#	src/app/api/websites/[websiteId]/events/series/route.ts
#	src/app/api/websites/[websiteId]/metrics/route.ts
#	src/app/api/websites/[websiteId]/pageviews/route.ts
#	src/app/api/websites/[websiteId]/sessions/stats/route.ts
#	src/app/api/websites/[websiteId]/stats/route.ts
#	src/app/api/websites/[websiteId]/values/route.ts
#	src/components/hooks/useFields.ts
#	src/components/hooks/useFilterParams.ts
#	src/lang/vi-VN.json
#	src/lib/clickhouse.ts
#	src/lib/detect.ts
#	src/lib/prisma.ts
#	src/lib/request.ts
#	src/lib/schema.ts
#	src/lib/types.ts
#	src/queries/sql/events/getEventDataFields.ts
#	src/queries/sql/events/getEventDataProperties.ts
#	src/queries/sql/events/getEventDataStats.ts
#	src/queries/sql/events/getEventDataValues.ts
#	src/queries/sql/events/getEventMetrics.ts
#	src/queries/sql/events/getWebsiteEvents.ts
#	src/queries/sql/getChannelMetrics.ts
#	src/queries/sql/getRealtimeActivity.ts
#	src/queries/sql/getWebsiteStats.ts
#	src/queries/sql/pageviews/getPageviewMetrics.ts
#	src/queries/sql/pageviews/getPageviewStats.ts
#	src/queries/sql/reports/getBreakdown.ts
#	src/queries/sql/sessions/getSessionDataProperties.ts
#	src/queries/sql/sessions/getSessionDataValues.ts
#	src/queries/sql/sessions/getSessionMetrics.ts
#	src/queries/sql/sessions/getSessionStats.ts
#	src/queries/sql/sessions/getWebsiteSessionStats.ts
#	src/queries/sql/sessions/getWebsiteSessions.ts
This commit is contained in:
Mike Cao 2025-07-08 22:03:55 -07:00
commit 87449ece9e
49 changed files with 704 additions and 345 deletions

View file

@ -3,336 +3,277 @@
"label.actions": "Hành động",
"label.activity": "Nhật ký hoạt động",
"label.add": "Thêm",
"label.add-board": "Thêm bảng",
"label.add-description": "Thêm mô tả",
"label.add-member": "Thêm thành viên",
"label.add-step": "Thêm bước",
"label.add-website": "Thêm website",
"label.admin": "Quản trị",
"label.affiliate": "Liên kết",
"label.after": "Sau",
"label.after": "Sau đó",
"label.all": "Tất cả",
"label.all-time": "Toàn thời gian",
"label.analytics": "Phân tích",
"label.apply": "Áp dụng",
"label.attribution": "Phân bổ",
"label.attribution-description": "Xem cách người dùng tương tác với tiếp thị của bạn và điều gì thúc đẩy chuyển đổi.",
"label.average": "Trung bình",
"label.back": "Quay về",
"label.before": "Trước",
"label.boards": "Bảng",
"label.back": "Quay lại",
"label.before": "Trước đó",
"label.bounce-rate": "Tỷ lệ thoát trang",
"label.breakdown": "Phân tích chi tiết",
"label.browser": "Trình duyệt",
"label.browsers": "Trình duyệt",
"label.campaigns": "Chiến dịch",
"label.cancel": "Huỷ bỏ",
"label.browsers": "Các trình duyệt",
"label.cancel": "Hủy bỏ",
"label.change-password": "Đổi mật khẩu",
"label.channels": "Kênh",
"label.cities": "Thành phố",
"label.cities": "Các thành phố",
"label.city": "Thành phố",
"label.clear-all": "Xóa tất cả",
"label.cohort": "Nhóm người dùng",
"label.compare": "So sánh",
"label.compare-dates": "So sánh ngày",
"label.confirm": "Xác nhận",
"label.confirm-password": "Xác nhận mật khẩu",
"label.contains": "Chứa",
"label.content": "Nội dung",
"label.continue": "Tiếp tục",
"label.conversion": "Chuyển đổi",
"label.conversion-rate": "Tỷ lệ chuyển đổi",
"label.conversion-step": "Bước chuyển đổi",
"label.count": "Số lượng",
"label.countries": "Quốc gia",
"label.countries": "Các quốc gia",
"label.country": "Quốc gia",
"label.create": "Tạo",
"label.create-report": "Tạo báo cáo",
"label.create-team": "Tạo nhóm",
"label.create-user": "Tạo người dùng",
"label.created": "Đã tạo",
"label.created-by": "Tạo bởi",
"label.currency": "Tiền tệ",
"label.created-by": "Được tạo bởi",
"label.current": "Hiện tại",
"label.current-password": "Mật khẩu hiện tại",
"label.custom-range": "Phạm vi ngày tuỳ chọn",
"label.custom-range": "Phạm vi tùy chỉnh",
"label.dashboard": "Bảng điều khiển",
"label.data": "Dữ liệu",
"label.date": "Ngày",
"label.date-range": "Phạm vi ngày",
"label.day": "Ngày",
"label.default-date-range": "Khoảng thời gian mặc định",
"label.delete": "X",
"label.delete": "Xóa",
"label.delete-report": "Xóa báo cáo",
"label.delete-team": "Xóa nhóm",
"label.delete-user": "Xóa người dùng",
"label.delete-website": "Xóa website",
"label.description": "Mô tả",
"label.desktop": "Máy bàn",
"label.desktop": "Máy tính để bàn",
"label.details": "Chi tiết",
"label.device": "Thiết bị",
"label.devices": "Thiết bị",
"label.direct": "Trực tiếp",
"label.dismiss": "Loại trừ",
"label.distinct-id": "ID riêng biệt",
"label.devices": "Các thiết bị",
"label.dismiss": "Bỏ qua",
"label.does-not-contain": "Không chứa",
"label.does-not-include": "Không bao gồm",
"label.doest-not-exist": "Không tồn tại",
"label.domain": "Tên miền",
"label.dropoff": "Rời bỏ",
"label.dropoff": "Tỷ lệ bỏ qua",
"label.edit": "Chỉnh sửa",
"label.edit-dashboard": "Chỉnh sửa bảng điều khiển",
"label.edit-member": "Chỉnh sửa thành viên",
"label.email": "Email",
"label.enable-share-url": "Bật khả năng chia sẻ URL",
"label.enable-share-url": "Bật chia sẻ URL",
"label.end-step": "Bước kết thúc",
"label.entry": "URL vào",
"label.entry": "URL truy cập",
"label.event": "Sự kiện",
"label.event-data": "Dữ liệu sự kiện",
"label.event-name": "Tên sự kiện",
"label.events": "Sự kiện",
"label.exists": "Tồn tại",
"label.events": "Các sự kiện",
"label.exit": "URL thoát",
"label.false": "Sai",
"label.field": "Trường",
"label.fields": "Các trường",
"label.filter": "Bộ lọc",
"label.filter-combined": "Kết hợp",
"label.filter-raw": "Gốc",
"label.filter": "Lọc",
"label.filter-combined": "Kết hợp lọc",
"label.filter-raw": "Lọc thô",
"label.filters": "Bộ lọc",
"label.first-click": "Nhấp đầu tiên",
"label.first-seen": "Lần đầu thấy",
"label.first-seen": "Lần đầu tiên nhìn thấy",
"label.funnel": "Phễu",
"label.funnel-description": "Hiểu tỷ lệ chuyển đổi và rời bỏ của người dùng.",
"label.funnels": "Phễu",
"label.funnel-description": "Tìm hiểu tỷ lệ chuyển đổi và bỏ qua của người dùng.",
"label.goal": "Mục tiêu",
"label.goals": "Mục tiêu",
"label.goals-description": "Theo dõi mục tiêu lượt xem trang và sự kiện.",
"label.goals": "Các mục tiêu",
"label.goals-description": "Theo dõi các mục tiêu của bạn cho lượt xem trang và sự kiện.",
"label.greater-than": "Lớn hơn",
"label.greater-than-equals": "Lớn hơn hoặc bằng",
"label.grouped": "Nhóm lại",
"label.hostname": "Tên máy chủ",
"label.includes": "Bao gồm",
"label.insight": "Thông tin chi tiết",
"label.insights": "Insights",
"label.insights-description": "Dive deeper into your data by using segments and filters.",
"label.host": "Máy chủ",
"label.hosts": "Các máy chủ",
"label.insights": "Thông tin chi tiết",
"label.insights-description": "Tìm hiểu sâu hơn về dữ liệu của bạn bằng cách sử dụng phân đoạn và bộ lọc.",
"label.is": "Là",
"label.is-false": "Sai",
"label.is-not": "Không là",
"label.is-not-set": "Chưa đặt",
"label.is-not": "Không phải là",
"label.is-not-set": "Chưa được đặt",
"label.is-set": "Đã đặt",
"label.is-true": "Đúng",
"label.join": "Tham gia",
"label.join-team": "Tham gia nhóm",
"label.journey": "Hành trình",
"label.journey-description": "Hiểu cách người dùng di chuyển qua website của bạn.",
"label.journeys": "Hành trình",
"label.journey-description": "Hiểu cách người dùng điều hướng qua website của bạn.",
"label.language": "Ngôn ngữ",
"label.languages": "Ngôn ngữ",
"label.laptop": "Laptop",
"label.last-click": "Nhấp cuối cùng",
"label.languages": "Các ngôn ngữ",
"label.laptop": "Máy tính xách tay",
"label.last-days": "{x} ngày gần nhất",
"label.last-hours": "{x} giờ gần nhất",
"label.last-months": "{x} tháng gần nhất",
"label.last-seen": "Lần cuối thấy",
"label.leave": "Rời đi",
"label.last-seen": "Lần cuối cùng nhìn thấy",
"label.leave": "Rời khỏi",
"label.leave-team": "Rời nhóm",
"label.less-than": "Nhỏ hơn",
"label.less-than-equals": "Nhỏ hơn hoặc bằng",
"label.links": "Liên kết",
"label.login": "Đăng nhập",
"label.logout": "Đăng xuất",
"label.manage": "Quản lý",
"label.manager": "Quản lý viên",
"label.manager": "Quản lý",
"label.max": "Tối đa",
"label.maximize": "Mở rộng",
"label.medium": "Trung bình",
"label.member": "Thành viên",
"label.members": "Các thành viên",
"label.min": "Tối thiểu",
"label.mobile": "Di động",
"label.model": "Mô hình",
"label.more": "Thêm",
"label.my-account": "Tài khoản của tôi",
"label.my-websites": "Website của tôi",
"label.my-websites": "Các website của tôi",
"label.name": "Tên",
"label.new-password": "Mật khẩu mới",
"label.none": "Không",
"label.number-of-records": "{x} {x, plural, one {record} other {records}}",
"label.none": "Không",
"label.number-of-records": "{x} {x, plural, one {bản ghi} other {bản ghi}}",
"label.ok": "OK",
"label.online": "Online",
"label.organic-search": "Tìm kiếm tự nhiên",
"label.organic-shopping": "Mua sắm tự nhiên",
"label.organic-social": "Mạng xã hội tự nhiên",
"label.organic-video": "Video tự nhiên",
"label.os": "OS",
"label.other": "Khác",
"label.overview": "Overview",
"label.os": "Hệ điều hành",
"label.overview": "Tổng quan",
"label.owner": "Chủ sở hữu",
"label.page": "Trang",
"label.page-of": "Page {current} of {total}",
"label.page-views": "Lượt xem",
"label.pageTitle": "Page title",
"label.pages": "Trang",
"label.paid-ads": "Quảng cáo trả phí",
"label.paid-search": "Tìm kiếm trả phí",
"label.paid-shopping": "Mua sắm trả phí",
"label.paid-social": "Mạng xã hội trả phí",
"label.paid-video": "Video trả phí",
"label.page-of": "Trang {current} trên {total}",
"label.page-views": "Lượt xem trang",
"label.pageTitle": "Tiêu đề trang",
"label.pages": "Các trang",
"label.password": "Mật khẩu",
"label.path": "Đường dẫn",
"label.paths": "Các đường dẫn",
"label.pixels": "Pixel",
"label.powered-by": "Bản quyền thuộc về {name}",
"label.previous": "Trước đó",
"label.previous-period": "Giai đoạn trước",
"label.powered-by": "Được cung cấp bởi {name}",
"label.previous": "Trước",
"label.previous-period": "Kỳ trước",
"label.previous-year": "Năm trước",
"label.profile": "Hồ sơ",
"label.properties": "Thuộc tính",
"label.property": "Thuộc tính",
"label.queries": "Queries",
"label.query": "Query",
"label.query-parameters": "Query parameters",
"label.queries": "Truy vấn",
"label.query": "Truy vấn",
"label.query-parameters": "Tham số truy vấn",
"label.realtime": "Thời gian thực",
"label.referral": "Giới thiệu",
"label.referrer": "Referrer",
"label.referrers": "Liên kết giới thiệu",
"label.referrer": "Nguồn giới thiệu",
"label.referrers": "Các nguồn giới thiệu",
"label.refresh": "Làm mới",
"label.regenerate": "Regenerate",
"label.region": "Region",
"label.regions": "Regions",
"label.remaining": "Còn lại",
"label.remove": "Remove",
"label.remove-member": "Remove member",
"label.reports": "Reports",
"label.regenerate": "Tạo lại",
"label.region": "Vùng",
"label.regions": "Các vùng",
"label.remove": "Xóa",
"label.remove-member": "Xóa thành viên",
"label.reports": "Báo cáo",
"label.required": "Yêu cầu",
"label.reset": "Tái thiết lập",
"label.reset-website": "Tái thiết lập thống kê",
"label.retention": "Retention",
"label.retention-description": "Measure your website stickiness by tracking how often users return.",
"label.reset": "Đặt lại",
"label.reset-website": "Đặt lại thống kê website",
"label.retention": "Tỷ lệ giữ chân",
"label.retention-description": "Đo lường mức độ gắn bó của website bằng cách theo dõi tần suất người dùng quay lại.",
"label.revenue": "Doanh thu",
"label.revenue-description": "Xem doanh thu của bạn theo thời gian.",
"label.role": "Role",
"label.run-query": "Run query",
"label.revenue-description": "Xem xét doanh thu của bạn theo thời gian.",
"label.revenue-property": "Thuộc tính doanh thu",
"label.role": "Vai trò",
"label.run-query": "Chạy truy vấn",
"label.save": "Lưu",
"label.screens": "Screens",
"label.search": "Search",
"label.select": "Select",
"label.select-date": "Select date",
"label.select-filter": "Chọn bộ lọc",
"label.select-role": "Select role",
"label.select-website": "Select website",
"label.screens": "Màn hình",
"label.search": "Tìm kiếm",
"label.select": "Chọn",
"label.select-date": "Chọn ngày",
"label.select-role": "Chọn vai trò",
"label.select-website": "Chọn website",
"label.session": "Phiên",
"label.session-data": "Dữ liệu phiên",
"label.sessions": "Sessions",
"label.sessions": "Các phiên",
"label.settings": "Cài đặt",
"label.share": "Chia sẻ",
"label.share-url": "Chia sẻ URL",
"label.single-day": "Trong ngày",
"label.sms": "SMS",
"label.sources": "Nguồn",
"label.start-step": "Start Step",
"label.steps": "Steps",
"label.sum": "Sum",
"label.single-day": "Một ngày",
"label.start-step": "Bước bắt đầu",
"label.steps": "Các bước",
"label.sum": "Tổng",
"label.tablet": "Máy tính bảng",
"label.tag": "Thẻ",
"label.tags": "Các thẻ",
"label.team": "Nhóm",
"label.team-id": "ID nhóm",
"label.team-manager": "Quản lý nhóm",
"label.team-member": "Thành viên nhóm",
"label.team-name": "Tên nhóm",
"label.team-owner": "Chủ nhóm",
"label.team-settings": "Cài đặt nhóm",
"label.team-view-only": "Team view only",
"label.team-websites": "Team websites",
"label.teams": "Teams",
"label.terms": "Điều khoản",
"label.theme": "Giao diện",
"label.team-owner": "Chủ sở hữu nhóm",
"label.team-view-only": "Chỉ xem nhóm",
"label.team-websites": "Các website của nhóm",
"label.teams": "Các nhóm",
"label.theme": "Chủ đề",
"label.this-month": "Tháng này",
"label.this-week": "Tuần này",
"label.this-year": "Năm nay",
"label.timezone": "Múi giờ",
"label.title": "Title",
"label.title": "Tiêu đề",
"label.today": "Hôm nay",
"label.toggle-charts": "Bật/tắt biểu đồ",
"label.total": "Total",
"label.total-records": "Total records",
"label.total": "Tổng",
"label.total-records": "Tổng số bản ghi",
"label.tracking-code": "Mã theo dõi",
"label.transactions": "Transactions",
"label.transfer": "Transfer",
"label.transfer-website": "Transfer website",
"label.true": "True",
"label.type": "Type",
"label.unique": "Unique",
"label.unique-visitors": "Khách truy cập một lần",
"label.uniqueCustomers": "Unique Customers",
"label.transactions": "Giao dịch",
"label.transfer": "Chuyển giao",
"label.transfer-website": "Chuyển giao website",
"label.true": "Đúng",
"label.type": "Loại",
"label.unique": "Duy nhất",
"label.unique-visitors": "Khách truy cập duy nhất",
"label.uniqueCustomers": "Khách hàng duy nhất",
"label.unknown": "Không rõ",
"label.untitled": "Untitled",
"label.update": "Update",
"label.user": "User",
"label.untitled": "Không có tiêu đề",
"label.update": "Cập nhật",
"label.url": "URL",
"label.urls": "Các URL",
"label.user": "Người dùng",
"label.user-property": "Thuộc tính người dùng",
"label.username": "Tên đăng nhập",
"label.users": "Users",
"label.users": "Người dùng",
"label.utm": "UTM",
"label.utm-description": "Track your campaigns through UTM parameters.",
"label.value": "Value",
"label.view": "View",
"label.utm-description": "Theo dõi các chiến dịch của bạn thông qua các tham số UTM.",
"label.value": "Giá trị",
"label.view": "Xem",
"label.view-details": "Xem chi tiết",
"label.view-only": "View only",
"label.views": "Xem",
"label.views-per-visit": "Views per visit",
"label.visit-duration": "Thời gian truy cập trung bình",
"label.visitors": "Khách",
"label.visits": "Visits",
"label.view-only": "Chỉ xem",
"label.views": "Lượt xem",
"label.views-per-visit": "Lượt xem trên mỗi lượt truy cập",
"label.visit-duration": "Thời lượng truy cập",
"label.visitors": "Khách truy cập",
"label.visits": "Lượt truy cập",
"label.website": "Website",
"label.website-id": "Website ID",
"label.websites": "Websites",
"label.window": "Window",
"label.yesterday": "Yesterday",
"message.action-confirmation": "Type {confirmation} in the box below to confirm.",
"message.active-users": "{x} hiện tại {x, plural, one {một} other {trên}}",
"message.bad-request": "Bad request",
"message.collected-data": "Collected data",
"message.confirm-delete": "Bạn có chắc chắn muốn xoá {target}?",
"message.confirm-leave": "Are you sure you want to leave {target}?",
"message.confirm-remove": "Are you sure you want to remove {target}?",
"message.confirm-reset": "Bạn có chắc chắn muốn tái thiết lập thống kê {target}?",
"message.delete-team-warning": "Deleting a team will also delete all team websites.",
"message.delete-website-warning": "Tất cả các dữ liệu liên quan cũng sẽ bị xoá.",
"label.website-id": "ID website",
"label.websites": "Các website",
"label.window": "Cửa sổ",
"label.yesterday": "Hôm qua",
"message.action-confirmation": "Nhập {confirmation} vào ô bên dưới để xác nhận.",
"message.active-users": "{x} {x, plural, one {người dùng} other {người dùng}} đang hoạt động",
"message.collected-data": "Dữ liệu đã thu thập",
"message.confirm-delete": "Bạn có chắc chắn muốn xóa {target}?",
"message.confirm-leave": "Bạn có chắc chắn muốn rời {target}?",
"message.confirm-remove": "Bạn có chắc chắn muốn xóa {target}?",
"message.confirm-reset": "Bạn có chắc chắn muốn đặt lại thống kê {target}?",
"message.delete-team-warning": "Việc xóa một nhóm cũng sẽ xóa tất cả các website của nhóm.",
"message.delete-website-warning": "Tất cả dữ liệu liên quan cũng sẽ bị xóa.",
"message.error": "Đã xảy ra lỗi.",
"message.event-log": "{event} on {url}",
"message.forbidden": "Forbidden",
"message.go-to-settings": "Chuyển tới cài đặt",
"message.event-log": "{event} trên {url}",
"message.go-to-settings": "Chuyển đến cài đặt",
"message.incorrect-username-password": "Sai tên đăng nhập/mật khẩu.",
"message.invalid-domain": "Tên miền không hợp lệ",
"message.min-password-length": "Minimum length of {n} characters",
"message.new-version-available": "A new version of Umami {version} is available!",
"message.min-password-length": "Độ dài tối thiểu {n} ký tự",
"message.new-version-available": "Có phiên bản mới của Umami {version}!",
"message.no-data-available": "Không có dữ liệu.",
"message.no-event-data": "No event data is available.",
"message.no-match-password": "Mật khẩu không đồng nhất",
"message.no-results-found": "No results were found.",
"message.no-team-websites": "This team does not have any websites.",
"message.no-teams": "You have not created any teams.",
"message.no-users": "There are no users.",
"message.no-websites-configured": "Bạn chưa có bất cứ website nào.",
"message.not-found": "Not found",
"message.nothing-selected": "Nothing selected.",
"message.page-not-found": "Trang không tìm thấy.",
"message.reset-website": "To reset this website, type {confirmation} in the box below to confirm.",
"message.reset-website-warning": "Tất cả số liệu thống kê của website này sẽ bị xoá, nhưng mã theo dõi sẽ vẫn giữ nguyên.",
"message.no-event-data": "Không có dữ liệu sự kiện.",
"message.no-match-password": "Mật khẩu không khớp",
"message.no-results-found": "Không tìm thấy kết quả nào.",
"message.no-team-websites": "Nhóm này không có bất kỳ website nào.",
"message.no-teams": "Bạn chưa tạo nhóm nào.",
"message.no-users": "Không có người dùng nào.",
"message.no-websites-configured": "Bạn chưa cấu hình bất kỳ website nào.",
"message.page-not-found": "Không tìm thấy trang.",
"message.reset-website": "Để đặt lại website này, nhập {confirmation} vào ô bên dưới để xác nhận.",
"message.reset-website-warning": "Tất cả số liệu thống kê của website này sẽ bị xóa, nhưng mã theo dõi sẽ vẫn giữ nguyên.",
"message.saved": "Đã lưu thành công.",
"message.sever-error": "Server error",
"message.share-url": "Đây là đường dẫn URL cho {target}.",
"message.team-already-member": "You are already a member of the team.",
"message.team-not-found": "Team not found.",
"message.team-websites-info": "Websites can be viewed by anyone on the team.",
"message.team-already-member": "Bạn đã là thành viên của nhóm.",
"message.team-not-found": "Không tìm thấy nhóm.",
"message.team-websites-info": "Bất kỳ ai trong nhóm đều có thể xem các website.",
"message.tracking-code": "Mã theo dõi",
"message.transfer-team-website-to-user": "Transfer this website to your account?",
"message.transfer-user-website-to-team": "Select the team to transfer this website to.",
"message.transfer-website": "Transfer website ownership to your account or another team.",
"message.triggered-event": "Triggered event",
"message.unauthorized": "Unauthorized",
"message.user-deleted": "User deleted.",
"message.viewed-page": "Viewed page",
"message.visitor-log": "Khách từ {country} đang dùng {browser} trên {os} {device}"
"message.transfer-team-website-to-user": "Chuyển website này sang tài khoản của bạn?",
"message.transfer-user-website-to-team": "Chọn nhóm để chuyển website này đến.",
"message.transfer-website": "Chuyển quyền sở hữu website sang tài khoản của bạn hoặc một nhóm khác.",
"message.triggered-event": "Sự kiện được kích hoạt",
"message.user-deleted": "Người dùng đã bị xóa.",
"message.viewed-page": "Đã xem trang",
"message.visitor-log": "Khách từ {country} đang sử dụng {browser} trên {os} {device}",
"message.visitors-dropped-off": "Khách truy cập đã rời đi"
}