chore(i18n): sync Vietnamese with latest dev keys

Add the keys dev gained since this PR opened so the new vi locale keeps full
parity: the help namespace (wiki help center), settings appearance options,
costs split modes, dashboard Unsplash cover search, the insecure-cookie login
hint, nav.help and the admin group labels.
This commit is contained in:
Maurice
2026-06-29 20:45:06 +02:00
committed by Maurice
parent e4efcf0840
commit 3e64cb86a6
8 changed files with 102 additions and 0 deletions
+4
View File
@@ -348,5 +348,9 @@ const admin: TranslationStrings = {
'Xóa tất cả mật mã của người dùng này (ví dụ: trên thiết bị bị mất). Họ vẫn có thể đăng nhập bằng mật khẩu của mình.',
'admin.passkey.resetConfirm': 'Xóa tất cả mật mã cho {name}?',
'admin.passkey.resetDone': 'Đã xóa {count} mật mã',
'admin.group.users': 'Người dùng',
'admin.group.config': 'Cấu hình',
'admin.group.integration': 'Tích hợp',
'admin.group.maintenance': 'Bảo trì',
};
export default admin;
+4
View File
@@ -116,6 +116,10 @@ const budget: TranslationStrings = {
'costs.unfinishedHint': 'Chỉ tổng cộng - chưa thanh toán',
'costs.tapToInclude': 'Nhấn để bao gồm',
'costs.amount': 'Số lượng',
'costs.split': 'Chia tiền',
'costs.splitEqually': 'Chia đều',
'costs.splitCustom': 'Tùy chỉnh',
'costs.splitTicket': 'Hóa đơn',
};
export default budget;
+7
View File
@@ -162,5 +162,12 @@ const dashboard: TranslationStrings = {
'dashboard.aria.addTimezone': 'Thêm múi giờ',
'dashboard.aria.removeTimezone': 'Xóa {city}',
'dashboard.dayCountRequired': 'Số ngày là bắt buộc',
'dashboard.coverSaveError': 'Không thể lưu ảnh bìa',
'dashboard.searchUnsplash': 'Tìm trên Unsplash',
'dashboard.unsplashSearchPlaceholder': 'Tìm ảnh điểm đến',
'dashboard.unsplashQueryRequired': 'Nhập từ khóa tìm kiếm',
'dashboard.unsplashNoResults': 'Không tìm thấy ảnh nào',
'dashboard.coverSearchError': 'Tìm kiếm trên Unsplash không thành công',
'dashboard.useUnsplashPhoto': 'Dùng ảnh Unsplash của {photographer}',
};
export default dashboard;
+13
View File
@@ -0,0 +1,13 @@
import type { TranslationStrings } from '../types';
const help: TranslationStrings = {
'help.title': 'Trợ giúp & Tài liệu',
'help.search': 'Tìm trong tài liệu…',
'help.contents': 'Nội dung',
'help.noResults': 'Không có trang nào phù hợp.',
'help.errorTitle': 'Không thể tải trang này',
'help.errorBody':
'Nội dung trợ giúp được lấy từ wiki TREK. Hãy kiểm tra kết nối và thử lại.',
};
export default help;
+2
View File
@@ -10,6 +10,7 @@ import dashboard from './dashboard';
import day from './day';
import dayplan from './dayplan';
import files from './files';
import help from './help';
import inspector from './inspector';
import journey from './journey';
import login from './login';
@@ -82,5 +83,6 @@ const locale = {
...oauth,
...system_notice,
...transport,
...help,
};
export default locale;
+4
View File
@@ -85,5 +85,9 @@ const login: TranslationStrings = {
'login.resetPasswordFailed': 'Đặt lại không thành công. Liên kết có thể đã hết hạn.',
'login.passkey.signIn': 'Đăng nhập bằng mật mã',
'login.passkey.failed': 'Đăng nhập bằng mật mã không thành công. Vui lòng thử lại.',
'login.insecureCookie.title': 'Đăng nhập không được giữ qua HTTP',
'login.insecureCookie.body':
'Bạn đang kết nối qua HTTP thuần, nên trình duyệt loại bỏ cookie phiên bảo mật của TREK — yêu cầu tiếp theo sẽ thất bại với "Access token required". Cách khắc phục: dùng HTTPS, hoặc với máy chủ tại nhà hãy đặt COOKIE_SECURE=false.',
'login.insecureCookie.link': 'Mở hướng dẫn khắc phục sự cố',
};
export default login;
+1
View File
@@ -16,5 +16,6 @@ const nav: TranslationStrings = {
'nav.bottomAdmin': 'Cài đặt quản trị viên',
'nav.bottomLogout': 'Đăng xuất',
'nav.bottomAdminBadge': 'Quản trị viên',
'nav.help': 'Trợ giúp',
};
export default nav;
+67
View File
@@ -340,6 +340,73 @@ const settings: TranslationStrings = {
'settings.aiParsing.multimodalHint': 'Dành cho các mô hình hỗ trợ thị giác — gửi PDF gốc thay vì văn bản đã trích xuất.',
'settings.aiParsing.toast.saved': 'Đã lưu cài đặt AI',
'settings.aiParsing.toast.saveError': 'Không thể lưu cài đặt AI',
'settings.tabs.appearance': 'Giao diện',
'settings.appearance.theme': 'Chủ đề',
'settings.appearance.scheme': 'Bảng màu',
'settings.appearance.scheme.default': 'Mặc định',
'settings.appearance.scheme.highContrast': 'Tương phản cao',
'settings.appearance.scheme.indigo': 'Chàm',
'settings.appearance.scheme.teal': 'Xanh ngọc',
'settings.appearance.scheme.rose': 'Hồng',
'settings.appearance.scheme.amber': 'Hổ phách',
'settings.appearance.scheme.violet': 'Tím',
'settings.appearance.scheme.custom': 'Tùy chỉnh',
'settings.appearance.customAccent': 'Màu nhấn tùy chỉnh',
'settings.appearance.contrastOk': 'Tương phản tốt',
'settings.appearance.contrastLow': 'Tương phản thấp',
'settings.appearance.readability': 'Khả năng đọc',
'settings.appearance.transparency': 'Độ trong suốt',
'settings.appearance.transparencyHint':
'Bề mặt trong mờ kiểu kính. Tắt để có nền đặc, tương phản cao hơn.',
'settings.appearance.reduceMotion': 'Giảm chuyển động',
'settings.appearance.reduceMotionHint': 'Giảm thiểu hoạt ảnh và hiệu ứng chuyển tiếp.',
'settings.appearance.density': 'Mật độ',
'settings.appearance.comfortable': 'Thoải mái',
'settings.appearance.compact': 'Gọn',
'settings.appearance.textSize': 'Cỡ chữ',
'settings.appearance.advancedTextSizes': 'Cỡ chữ nâng cao',
'settings.appearance.hideAdvanced': 'Ẩn nâng cao',
'settings.appearance.tier.title': 'Tiêu đề',
'settings.appearance.tier.subtitle': 'Phụ đề',
'settings.appearance.tier.body': 'Nội dung',
'settings.appearance.tier.caption': 'Chú thích',
'settings.appearance.dashboardWidgets': 'Tiện ích bảng điều khiển',
'settings.appearance.dashboardWidgetsHint':
'Hiện hoặc ẩn các tiện ích bảng điều khiển riêng cho máy tính và di động.',
'settings.appearance.desktop': 'Máy tính',
'settings.appearance.mobile': 'Di động',
'settings.appearance.widget.sidebar': 'Thanh bên phải',
'settings.appearance.widget.currency': 'Tiền tệ',
'settings.appearance.widget.timezones': 'Múi giờ',
'settings.appearance.widget.upcomingReservations': 'Đặt chỗ sắp tới',
'settings.appearance.widget.atlas': 'Atlas / quốc gia',
'settings.appearance.widget.tripsTotal': 'Tổng số chuyến đi',
'settings.appearance.widget.daysTraveled': 'Số ngày đã đi',
'settings.appearance.widget.distanceFlown': 'Quãng đường bay',
'settings.appearance.reset': 'Đặt lại về mặc định',
'settings.appearance.group.belowHero': 'Dưới ảnh bìa',
'settings.appearance.group.bottomOfPage': 'Cuối trang',
'settings.appearance.sidebarHint':
'Toàn bộ cột bên phải. Tắt đi thì bảng điều khiển sẽ căn giữa.',
'settings.appearance.densityHint':
'Chế độ gọn thu hẹp khoảng cách và lề để bố cục dày đặc hơn, hiển thị được nhiều hơn trên màn hình.',
'settings.appearance.textSizeAll': 'Tất cả',
'settings.appearance.perSize': 'Điều chỉnh từng cỡ riêng biệt',
'settings.appearance.size.large': 'Lớn',
'settings.appearance.size.medium': 'Vừa',
'settings.appearance.size.normal': 'Bình thường',
'settings.appearance.size.small': 'Nhỏ',
'settings.appearance.preview.large': 'Tiêu đề lớn',
'settings.appearance.preview.medium': 'Phụ đề vừa',
'settings.appearance.preview.normal': 'Văn bản nội dung bình thường',
'settings.appearance.preview.small': 'Chú thích / địa chỉ nhỏ',
'settings.appearance.example.large': 'Tiêu đề, số lớn',
'settings.appearance.example.medium': 'Tiêu đề phụ',
'settings.appearance.example.normal': 'Tên địa điểm, mô tả',
'settings.appearance.example.small': 'Địa chỉ, nhãn',
'settings.appearance.experimental': 'Thử nghiệm',
'settings.general.languageRegion': 'Ngôn ngữ & khu vực',
'settings.general.travelMap': 'Du lịch & bản đồ',
};
export default settings;