Files
TREK/shared/src/i18n/vi/externalNotifications.ts
T
Maurice 44f669cd0e feat(mail-ingest): tell every address holder once when the import stops
A plan without the import switches it off from outside the server, and an
admin can switch it off too; the plan promises a "mail import paused" note.
An hourly job sends mail_ingest_paused to each holder of a live address with
their own import on, notes the pause first, and forgets it once it is back.
2026-11-13 17:44:55 +01:00

121 lines
6.1 KiB
TypeScript

import type { NotificationLocale } from '../externalNotifications/types';
const en: NotificationLocale = {
email: {
footer: 'Bạn nhận được thông báo này vì bạn đã bật thông báo trong TREK.',
manage: 'Quản lý tùy chọn trong Cài đặt',
madeWith: 'Được làm bằng',
openTrek: 'Mở TREK',
},
events: {
trip_invite: (p) => ({
title: `Lời mời chuyến đi: "${p.trip}"`,
body: `${p.actor} đã mời ${p.invitee || 'a member'} tham gia chuyến đi "${p.trip}".`,
}),
booking_change: (p) => ({
title: `Đặt chổ mới: ${p.booking}`,
body: `${p.actor} đã thêm mới một ${p.type} "${p.booking}" vào "${p.trip}".`,
}),
flight_departed: (p) => ({
title: `${p.flight} đã cất cánh`,
body: `Chuyến bay ${p.flight} từ ${p.from} đến ${p.to} đang bay.`,
}),
flight_delayed: (p) => ({
title: `${p.flight} bị trễ`,
body: `Chuyến bay ${p.flight} từ ${p.from} đến ${p.to} đang trễ khoảng ${p.delay} phút so với lịch.`,
}),
flight_landed: (p) => ({
title: `${p.flight} đã hạ cánh`,
body: `Chuyến bay ${p.flight} từ ${p.from} đã hạ cánh tại ${p.to}.`,
}),
trip_reminder: (p) => ({
title: `Nhắc nhở chuyến đi: ${p.trip}`,
body: `Hành trình "${p.trip}" sắp bất đầu!`,
}),
todo_due: (p) => ({
title: `To-do due: ${p.todo}`,
body: `"${p.todo}" trong "${p.trip}" đến hạn vào ngày ${p.due}.`,
}),
vacay_invite: (p) => ({
title: 'Lời mời kết hợp kì nghỉ',
body: `${p.actor} đã mời bạn kết hợp kế hoạch kỳ nghỉ. Mở TREK để chấp nhận hoặc từ chối.`,
}),
vacay_share: (p) => ({
title: 'Đã chia sẻ lịch Vacay',
body: `${p.actor} đã chia sẻ lịch nghỉ phép của họ với bạn. Mở TREK để xem.`,
}),
collection_invite: (p) => ({
title: 'Lời mời bộ sưu tập',
body: `${p.actor} đã mời bạn chia sẻ một bộ sưu tập. Mở TREK để chấp nhận hoặc từ chối.`,
}),
photos_shared: (p) => ({
title: `Đã chia sẻ ${p.count} ảnh`,
body: `${p.actor} đã chia sẻ ${p.count} ảnh trong "${p.trip}".`,
}),
collab_message: (p) => ({
title: `Tin nhắn mới trong "${p.trip}"`,
body: `${p.actor}: ${p.preview}`,
}),
packing_tagged: (p) => ({
title: `Đang đóng đồ: ${p.category}`,
body: `${p.actor} đã giao cho bạn đóng "${p.category}" trong "${p.trip}".`,
}),
version_available: (p) => ({
title: 'Đã có phiên bản TREK mới',
body: `TREK ${p.version} có bản mới. Vui lòng truy cập bảng điều khiển quản trị để cập nhật.`,
}),
replica_failure: (p) => ({
title: 'Lỗi bản sao lưu trữ',
body:
`Ghi vào bản sao '${p.backend}' thất bại: ${p.op} của ${p.key} — ${p.error}.` +
(p.suppressed !== '0'
? ` Kể từ lần thông báo trước, có thêm ${p.suppressed} lỗi nhưng không được thông báo riêng.`
: ''),
}),
paddle_region_requested: (p) => ({
title: 'Có yêu cầu vùng chèo thuyền',
body: `${p.actor} đang lên kế hoạch chèo thuyền ở ${p.region}. Tải hoặc từ chối dữ liệu nước trong khu quản trị, mục Tiện ích bổ sung.`,
}),
synology_session_cleared: () => ({
title: 'Đã xóa phiên Synology',
body: 'Tài khoản Synology của bạn hoặc URL đã thay đổi. Bạn đã đăng xuất khỏi Synology Photos.',
}),
wanderer_source_hint: (p) => ({
title: `Tuyến wanderer: ${p.tour}`,
body:
p.state === 'changed'
? `“${p.tour}” trong “${p.trip}” đã được thay đổi trên wanderer. Hãy mở chuyến đi và kiểm tra nguồn để xem mọi thay đổi. Không có gì trong chuyến du lịch tự thay đổi.`
: p.state === 'unverifiable'
? `“${p.tour}” trong “${p.trip}” không còn kiểm tra được trên wanderer. Chuyến đi trong chuyến du lịch của bạn vẫn giữ nguyên.`
: `“${p.tour}” trong “${p.trip}” có thể đã thay đổi trên wanderer. Hãy mở chuyến đi và kiểm tra nguồn của nó. Không có gì trong chuyến du lịch tự thay đổi.`,
}),
mail_booking_added: (p) => ({
title: `Đã thêm từ email: ${p.booking}`,
body:
p.role === 'traveller'
? `${p.actor} đã thêm "${p.booking}" vào "${p.trip}" từ một email được chuyển tiếp.`
: `"${p.booking}" từ email bạn chuyển tiếp đã được thêm vào "${p.trip}". Bạn có thể hoàn tác trong TREK trong 7 ngày.`,
}),
mail_booking_pending: (p) => ({
title: 'Đặt chỗ chuyển tiếp cần xem lại',
body: `Đặt chỗ chuyển tiếp đang chờ bạn trong TREK: ${p.count}. Mỗi mục cho biết vì sao nó không được tự động thêm.`,
}),
mail_ingest_paused: () => ({
title: 'Đã tạm dừng nhập email',
body: 'Hiện tại TREK chưa nhận email đặt chỗ được chuyển tiếp, vì vậy hãy tạm chưa chuyển tiếp. Địa chỉ của bạn vẫn được giữ và sẽ hoạt động lại khi tính năng nhập quay lại, còn các đặt chỗ đã thêm vẫn nằm trong chuyến đi của bạn.',
}),
plugin_notification: (p) => ({ title: p.title ?? '', body: p.body ?? '' }),
},
passwordReset: {
subject: 'Đặt lại mật khẩu của bạn',
greeting: 'CHÀO',
body: 'Chúng tôi đã nhận được yêu cầu đặt lại mật khẩu cho tài khoản TREK của bạn. Nhấp vào nút bên dưới để đặt mật khẩu mới.',
ctaIntro: 'Đặt lại mật khẩu',
expiry: 'Liên kết này sẽ hết hạn sau 60 phút.',
ignore:
'Nếu bạn không yêu cầu điều này, bạn có thể bỏ qua email này một cách an toàn — mật khẩu của bạn sẽ không thay đổi.',
},
};
export default en;