i18n: sync all 9 language files to match en.ts (1210+ keys each)

This commit is contained in:
Maurice
2026-03-30 18:19:22 +02:00
parent 70809d6c27
commit 41d4b2a8be
7 changed files with 414 additions and 20 deletions

View File

@@ -145,6 +145,33 @@ const ar: Record<string, string | { name: string; category: string }[]> = {
'settings.timeFormat': 'تنسيق الوقت',
'settings.routeCalculation': 'حساب المسار',
'settings.blurBookingCodes': 'إخفاء رموز الحجز',
'settings.notifications': 'الإشعارات',
'settings.notifyTripInvite': 'دعوات الرحلات',
'settings.notifyBookingChange': 'تغييرات الحجز',
'settings.notifyTripReminder': 'تذكيرات الرحلات',
'settings.notifyVacayInvite': 'دعوات دمج الإجازات',
'settings.notifyPhotosShared': 'صور مشتركة (Immich)',
'settings.notifyCollabMessage': 'رسائل الدردشة (Collab)',
'settings.notifyPackingTagged': 'قائمة الأمتعة: التعيينات',
'settings.notifyWebhook': 'إشعارات Webhook',
'admin.smtp.title': 'البريد والإشعارات',
'admin.smtp.hint': 'تكوين SMTP لإشعارات البريد الإلكتروني. اختياري: عنوان Webhook لـ Discord أو Slack وغيرها.',
'admin.smtp.testButton': 'إرسال بريد تجريبي',
'admin.smtp.testSuccess': 'تم إرسال البريد التجريبي بنجاح',
'admin.smtp.testFailed': 'فشل إرسال البريد التجريبي',
'dayplan.icsTooltip': 'تصدير التقويم (ICS)',
'share.linkTitle': 'رابط عام',
'share.linkHint': 'أنشئ رابطًا يمكن لأي شخص استخدامه لعرض هذه الرحلة بدون تسجيل الدخول. للقراءة فقط — لا يمكن التعديل.',
'share.createLink': 'إنشاء رابط',
'share.deleteLink': 'حذف الرابط',
'share.createError': 'تعذر إنشاء الرابط',
'common.copy': 'نسخ',
'common.copied': 'تم النسخ',
'share.permMap': 'الخريطة والخطة',
'share.permBookings': 'الحجوزات',
'share.permPacking': 'الأمتعة',
'share.permBudget': 'الميزانية',
'share.permCollab': 'الدردشة',
'settings.on': 'تشغيل',
'settings.off': 'إيقاف',
'settings.account': 'الحساب',
@@ -381,8 +408,8 @@ const ar: Record<string, string | { name: string; category: string }[]> = {
// Addons
'admin.addons.title': 'الإضافات',
'admin.addons.subtitle': 'فعّل أو عطّل الميزات لتخصيص تجربة TREK.',
'admin.addons.catalog.memories.name': 'صور (Immich)',
'admin.addons.catalog.memories.description': 'شارك صور رحلتك عبر Immich',
'admin.addons.catalog.memories.name': 'ذكريات',
'admin.addons.catalog.memories.description': 'ألبومات صور مشتركة لكل رحلة',
'admin.addons.catalog.packing.name': 'التعبئة',
'admin.addons.catalog.packing.description': 'قوائم تحقق لإعداد أمتعتك لكل رحلة',
'admin.addons.catalog.budget.name': 'الميزانية',
@@ -548,6 +575,10 @@ const ar: Record<string, string | { name: string; category: string }[]> = {
'atlas.markVisited': 'تعيين كمُزار',
'atlas.markVisitedHint': 'إضافة هذا البلد إلى قائمة المُزارة',
'atlas.addToBucket': 'إضافة إلى قائمة الأمنيات',
'atlas.addPoi': 'إضافة مكان',
'atlas.bucketNamePlaceholder': 'الاسم (بلد، مدينة، مكان…)',
'atlas.month': 'الشهر',
'atlas.year': 'السنة',
'atlas.addToBucketHint': 'حفظ كمكان تريد زيارته',
'atlas.bucketWhen': 'متى تخطط للزيارة؟',
'atlas.statsTab': 'الإحصائيات',
@@ -645,11 +676,14 @@ const ar: Record<string, string | { name: string; category: string }[]> = {
'places.importGpx': 'استيراد GPX',
'places.gpxImported': 'تم استيراد {count} مكان من GPX',
'places.gpxError': 'فشل استيراد GPX',
'places.urlResolved': 'تم استيراد المكان من الرابط',
'places.assignToDay': 'إلى أي يوم تريد الإضافة؟',
'places.all': 'الكل',
'places.unplanned': 'غير مخطط',
'places.search': 'ابحث عن أماكن...',
'places.allCategories': 'كل الفئات',
'places.categoriesSelected': 'فئات',
'places.clearFilter': 'مسح الفلتر',
'places.count': '{count} أماكن',
'places.countSingular': 'مكان واحد',
'places.allPlanned': 'تم تخطيط جميع الأماكن',
@@ -1024,7 +1058,27 @@ const ar: Record<string, string | { name: string; category: string }[]> = {
'backup.auto.enable': 'تفعيل النسخ التلقائي',
'backup.auto.enableHint': 'سيتم إنشاء نسخ احتياطية تلقائيًا وفق الجدول المختار',
'backup.auto.interval': 'الفترة',
'backup.auto.hour': 'التنفيذ في الساعة',
'backup.auto.hourHint': 'التوقيت المحلي للخادم (تنسيق {format})',
'backup.auto.dayOfWeek': 'يوم الأسبوع',
'backup.auto.dayOfMonth': 'يوم الشهر',
'backup.auto.dayOfMonthHint': 'محدود بين 128 للتوافق مع جميع الأشهر',
'backup.auto.scheduleSummary': 'الجدول',
'backup.auto.summaryDaily': 'كل يوم الساعة {hour}:00',
'backup.auto.summaryWeekly': 'كل {day} الساعة {hour}:00',
'backup.auto.summaryMonthly': 'اليوم {day} من كل شهر الساعة {hour}:00',
'backup.auto.envLocked': 'Docker',
'backup.auto.envLockedHint': 'النسخ الاحتياطي التلقائي مُعدّ عبر متغيرات بيئة Docker. لتعديل الإعدادات، حدّث docker-compose.yml وأعد تشغيل الحاوية.',
'backup.auto.copyEnv': 'نسخ متغيرات بيئة Docker',
'backup.auto.envCopied': 'تم نسخ متغيرات بيئة Docker إلى الحافظة',
'backup.auto.keepLabel': 'حذف النسخ القديمة بعد',
'backup.dow.sunday': 'أحد',
'backup.dow.monday': 'إثن',
'backup.dow.tuesday': 'ثلا',
'backup.dow.wednesday': 'أرب',
'backup.dow.thursday': 'خمي',
'backup.dow.friday': 'جمع',
'backup.dow.saturday': 'سبت',
'backup.interval.hourly': 'كل ساعة',
'backup.interval.daily': 'يوميًا',
'backup.interval.weekly': 'أسبوعيًا',

View File

@@ -139,6 +139,34 @@ const br: Record<string, string | { name: string; category: string }[]> = {
'settings.temperature': 'Unidade de temperatura',
'settings.timeFormat': 'Formato de hora',
'settings.routeCalculation': 'Cálculo de rota',
'settings.blurBookingCodes': 'Ocultar códigos de reserva',
'settings.notifications': 'Notificações',
'settings.notifyTripInvite': 'Convites de viagem',
'settings.notifyBookingChange': 'Alterações de reserva',
'settings.notifyTripReminder': 'Lembretes de viagem',
'settings.notifyVacayInvite': 'Convites de fusão Vacay',
'settings.notifyPhotosShared': 'Fotos compartilhadas (Immich)',
'settings.notifyCollabMessage': 'Mensagens de chat (Colab)',
'settings.notifyPackingTagged': 'Lista de mala: atribuições',
'settings.notifyWebhook': 'Notificações webhook',
'admin.smtp.title': 'E-mail e notificações',
'admin.smtp.hint': 'Configuração SMTP para notificações por e-mail. Opcional: URL webhook para Discord, Slack, etc.',
'admin.smtp.testButton': 'Enviar e-mail de teste',
'admin.smtp.testSuccess': 'E-mail de teste enviado com sucesso',
'admin.smtp.testFailed': 'Falha ao enviar e-mail de teste',
'dayplan.icsTooltip': 'Exportar calendário (ICS)',
'share.linkTitle': 'Link público',
'share.linkHint': 'Crie um link que qualquer pessoa pode usar para ver esta viagem sem fazer login. Somente leitura — sem edição possível.',
'share.createLink': 'Criar link',
'share.deleteLink': 'Excluir link',
'share.createError': 'Não foi possível criar o link',
'common.copy': 'Copiar',
'common.copied': 'Copiado',
'share.permMap': 'Mapa e plano',
'share.permBookings': 'Reservas',
'share.permPacking': 'Mala',
'share.permBudget': 'Orçamento',
'share.permCollab': 'Chat',
'settings.on': 'Ligado',
'settings.off': 'Desligado',
'settings.account': 'Conta',
@@ -542,6 +570,10 @@ const br: Record<string, string | { name: string; category: string }[]> = {
'atlas.markVisited': 'Marcar como visitado',
'atlas.markVisitedHint': 'Adicionar este país à lista de visitados',
'atlas.addToBucket': 'Adicionar à lista de desejos',
'atlas.addPoi': 'Adicionar lugar',
'atlas.bucketNamePlaceholder': 'Nome (país, cidade, lugar…)',
'atlas.month': 'Mês',
'atlas.year': 'Ano',
'atlas.addToBucketHint': 'Salvar como lugar que você quer visitar',
'atlas.bucketWhen': 'Quando pretende visitar?',
'atlas.statsTab': 'Estatísticas',
@@ -627,14 +659,26 @@ const br: Record<string, string | { name: string; category: string }[]> = {
'dayplan.pdf': 'PDF',
'dayplan.pdfTooltip': 'Exportar plano do dia em PDF',
'dayplan.pdfError': 'Falha ao exportar PDF',
'dayplan.cannotReorderTransport': 'Reservas com horário fixo não podem ser reordenadas',
'dayplan.confirmRemoveTimeTitle': 'Remover horário?',
'dayplan.confirmRemoveTimeBody': 'Este lugar tem um horário fixo ({time}). Movê-lo removerá o horário e permitirá ordenação livre.',
'dayplan.confirmRemoveTimeAction': 'Remover horário e mover',
'dayplan.cannotDropOnTimed': 'Itens não podem ser colocados entre entradas com horário fixo',
'dayplan.cannotBreakChronology': 'Isso quebraria a ordem cronológica dos itens e reservas agendados',
// Places Sidebar
'places.addPlace': 'Adicionar lugar/atividade',
'places.importGpx': 'Importar GPX',
'places.gpxImported': '{count} lugares importados do GPX',
'places.gpxError': 'Falha ao importar GPX',
'places.urlResolved': 'Lugar importado da URL',
'places.assignToDay': 'Adicionar a qual dia?',
'places.all': 'Todos',
'places.unplanned': 'Não planejados',
'places.search': 'Buscar lugares...',
'places.allCategories': 'Todas as categorias',
'places.categoriesSelected': 'categorias',
'places.clearFilter': 'Limpar filtro',
'places.count': '{count} lugares',
'places.countSingular': '1 lugar',
'places.allPlanned': 'Todos os lugares estão planejados',
@@ -733,6 +777,8 @@ const br: Record<string, string | { name: string; category: string }[]> = {
'reservations.type.tour': 'Passeio',
'reservations.type.other': 'Outro',
'reservations.confirm.delete': 'Tem certeza de que deseja excluir a reserva "{name}"?',
'reservations.confirm.deleteTitle': 'Excluir reserva?',
'reservations.confirm.deleteBody': '"{name}" será excluído permanentemente.',
'reservations.toast.updated': 'Reserva atualizada',
'reservations.toast.removed': 'Reserva excluída',
'reservations.toast.fileUploaded': 'Arquivo enviado',
@@ -790,6 +836,9 @@ const br: Record<string, string | { name: string; category: string }[]> = {
'budget.paid': 'Pago',
'budget.open': 'Em aberto',
'budget.noMembers': 'Nenhum membro atribuído',
'budget.settlement': 'Acerto',
'budget.settlementInfo': 'Clique no avatar de um membro em um item do orçamento para marcá-lo em verde — significa que ele pagou. O acerto mostra quem deve quanto a quem.',
'budget.netBalances': 'Saldos líquidos',
// Files
'files.title': 'Arquivos',
@@ -843,6 +892,15 @@ const br: Record<string, string | { name: string; category: string }[]> = {
// Packing
'packing.title': 'Lista de mala',
'packing.empty': 'A lista de mala está vazia',
'packing.import': 'Importar',
'packing.importTitle': 'Importar lista de bagagem',
'packing.importHint': 'Um item por linha. Formato: Categoria, Nome, Peso (g), Bolsa, checked/unchecked (opcional)',
'packing.importPlaceholder': 'Higiene, Escova de dentes\nRoupas, Camisetas, 200\nDocumentos, Passaporte, , Mala de mão\nEletrônicos, Carregador, 50, Mala, checked',
'packing.importCsv': 'Carregar CSV/TXT',
'packing.importAction': 'Importar {count}',
'packing.importSuccess': '{count} itens importados',
'packing.importError': 'Falha na importação',
'packing.importEmpty': 'Nenhum item para importar',
'packing.progress': '{packed} de {total} na mala ({percent}%)',
'packing.clearChecked': 'Remover {count} marcado(s)',
'packing.clearCheckedShort': 'Remover {count}',
@@ -994,7 +1052,27 @@ const br: Record<string, string | { name: string; category: string }[]> = {
'backup.auto.enable': 'Ativar backup automático',
'backup.auto.enableHint': 'Backups serão criados automaticamente conforme a agenda escolhida',
'backup.auto.interval': 'Intervalo',
'backup.auto.hour': 'Executar no horário',
'backup.auto.hourHint': 'Horário local do servidor (formato {format})',
'backup.auto.dayOfWeek': 'Dia da semana',
'backup.auto.dayOfMonth': 'Dia do mês',
'backup.auto.dayOfMonthHint': 'Limitado a 128 para compatibilidade com todos os meses',
'backup.auto.scheduleSummary': 'Agenda',
'backup.auto.summaryDaily': 'Todos os dias às {hour}:00',
'backup.auto.summaryWeekly': 'Toda {day} às {hour}:00',
'backup.auto.summaryMonthly': 'Dia {day} de cada mês às {hour}:00',
'backup.auto.envLocked': 'Docker',
'backup.auto.envLockedHint': 'O backup automático é configurado via variáveis de ambiente Docker. Para alterar essas configurações, atualize o docker-compose.yml e reinicie o contêiner.',
'backup.auto.copyEnv': 'Copiar variáveis de ambiente Docker',
'backup.auto.envCopied': 'Variáveis de ambiente Docker copiadas para a área de transferência',
'backup.auto.keepLabel': 'Excluir backups antigos após',
'backup.dow.sunday': 'Dom',
'backup.dow.monday': 'Seg',
'backup.dow.tuesday': 'Ter',
'backup.dow.wednesday': 'Qua',
'backup.dow.thursday': 'Qui',
'backup.dow.friday': 'Sex',
'backup.dow.saturday': 'Sáb',
'backup.interval.hourly': 'A cada hora',
'backup.interval.daily': 'Diário',
'backup.interval.weekly': 'Semanal',

View File

@@ -141,6 +141,33 @@ const es: Record<string, string> = {
'settings.timeFormat': 'Formato de hora',
'settings.routeCalculation': 'Cálculo de ruta',
'settings.blurBookingCodes': 'Difuminar códigos de reserva',
'settings.notifications': 'Notificaciones',
'settings.notifyTripInvite': 'Invitaciones de viaje',
'settings.notifyBookingChange': 'Cambios en reservas',
'settings.notifyTripReminder': 'Recordatorios de viaje',
'settings.notifyVacayInvite': 'Invitaciones de fusión Vacay',
'settings.notifyPhotosShared': 'Fotos compartidas (Immich)',
'settings.notifyCollabMessage': 'Mensajes de chat (Collab)',
'settings.notifyPackingTagged': 'Lista de equipaje: asignaciones',
'settings.notifyWebhook': 'Notificaciones webhook',
'admin.smtp.title': 'Correo y notificaciones',
'admin.smtp.hint': 'Configuración SMTP para notificaciones por correo. Opcional: URL webhook para Discord, Slack, etc.',
'admin.smtp.testButton': 'Enviar correo de prueba',
'admin.smtp.testSuccess': 'Correo de prueba enviado correctamente',
'admin.smtp.testFailed': 'Error al enviar correo de prueba',
'dayplan.icsTooltip': 'Exportar calendario (ICS)',
'share.linkTitle': 'Enlace público',
'share.linkHint': 'Crea un enlace que cualquiera puede usar para ver este viaje sin iniciar sesión. Solo lectura — no se puede editar.',
'share.createLink': 'Crear enlace',
'share.deleteLink': 'Eliminar enlace',
'share.createError': 'No se pudo crear el enlace',
'common.copy': 'Copiar',
'common.copied': 'Copiado',
'share.permMap': 'Mapa y plan',
'share.permBookings': 'Reservas',
'share.permPacking': 'Equipaje',
'share.permBudget': 'Presupuesto',
'share.permCollab': 'Chat',
'settings.on': 'Activado',
'settings.off': 'Desactivado',
'settings.account': 'Cuenta',
@@ -557,6 +584,10 @@ const es: Record<string, string> = {
'atlas.markVisited': 'Marcar como visitado',
'atlas.markVisitedHint': 'Añadir este país a tu lista de visitados',
'atlas.addToBucket': 'Añadir a lista de deseos',
'atlas.addPoi': 'Añadir lugar',
'atlas.bucketNamePlaceholder': 'Nombre (país, ciudad, lugar…)',
'atlas.month': 'Mes',
'atlas.year': 'Año',
'atlas.addToBucketHint': 'Guardar como lugar que quieres visitar',
'atlas.bucketWhen': '¿Cuándo planeas visitarlo?',
@@ -618,11 +649,14 @@ const es: Record<string, string> = {
'places.importGpx': 'Importar GPX',
'places.gpxImported': '{count} lugares importados desde GPX',
'places.gpxError': 'Error al importar GPX',
'places.urlResolved': 'Lugar importado desde URL',
'places.assignToDay': '¿A qué día añadirlo?',
'places.all': 'Todo',
'places.unplanned': 'Sin planificar',
'places.search': 'Buscar lugares...',
'places.allCategories': 'Todas las categorías',
'places.categoriesSelected': 'categorías',
'places.clearFilter': 'Borrar filtro',
'places.count': '{count} lugares',
'places.countSingular': '1 lugar',
'places.allPlanned': 'Todos los lugares están planificados',
@@ -958,7 +992,27 @@ const es: Record<string, string> = {
'backup.auto.enable': 'Activar copia automática',
'backup.auto.enableHint': 'Se crearán copias automáticamente según la frecuencia elegida',
'backup.auto.interval': 'Intervalo',
'backup.auto.hour': 'Ejecutar a la hora',
'backup.auto.hourHint': 'Hora local del servidor (formato {format})',
'backup.auto.dayOfWeek': 'Día de la semana',
'backup.auto.dayOfMonth': 'Día del mes',
'backup.auto.dayOfMonthHint': 'Limitado a 128 para compatibilidad con todos los meses',
'backup.auto.scheduleSummary': 'Programación',
'backup.auto.summaryDaily': 'Todos los días a las {hour}:00',
'backup.auto.summaryWeekly': 'Cada {day} a las {hour}:00',
'backup.auto.summaryMonthly': 'El día {day} de cada mes a las {hour}:00',
'backup.auto.envLocked': 'Docker',
'backup.auto.envLockedHint': 'La copia automática está configurada mediante variables de entorno Docker. Para cambiar estos ajustes, actualiza tu docker-compose.yml y reinicia el contenedor.',
'backup.auto.copyEnv': 'Copiar variables de entorno Docker',
'backup.auto.envCopied': 'Variables de entorno Docker copiadas al portapapeles',
'backup.auto.keepLabel': 'Eliminar copias antiguas después de',
'backup.dow.sunday': 'Dom',
'backup.dow.monday': 'Lun',
'backup.dow.tuesday': 'Mar',
'backup.dow.wednesday': 'Mié',
'backup.dow.thursday': 'Jue',
'backup.dow.friday': 'Vie',
'backup.dow.saturday': 'Sáb',
'backup.interval.hourly': 'Cada hora',
'backup.interval.daily': 'Diaria',
'backup.interval.weekly': 'Semanal',
@@ -978,8 +1032,8 @@ const es: Record<string, string> = {
'photos.linkPlace': 'Vincular lugar',
'photos.noPlace': 'Sin lugar',
'photos.uploadN': 'Subida de {n} foto(s)',
'admin.addons.catalog.memories.name': 'Fotos (Immich)',
'admin.addons.catalog.memories.description': 'Comparte fotos de viaje a través de tu instancia de Immich',
'admin.addons.catalog.memories.name': 'Recuerdos',
'admin.addons.catalog.memories.description': 'Álbumes de fotos compartidos para cada viaje',
'admin.addons.catalog.packing.name': 'Equipaje',
'admin.addons.catalog.packing.description': 'Prepara tu equipaje con listas de comprobación para cada viaje',
'admin.addons.catalog.budget.name': 'Presupuesto',

View File

@@ -140,6 +140,33 @@ const fr: Record<string, string> = {
'settings.timeFormat': 'Format de l\'heure',
'settings.routeCalculation': 'Calcul d\'itinéraire',
'settings.blurBookingCodes': 'Masquer les codes de réservation',
'settings.notifications': 'Notifications',
'settings.notifyTripInvite': 'Invitations de voyage',
'settings.notifyBookingChange': 'Modifications de réservation',
'settings.notifyTripReminder': 'Rappels de voyage',
'settings.notifyVacayInvite': 'Invitations de fusion Vacay',
'settings.notifyPhotosShared': 'Photos partagées (Immich)',
'settings.notifyCollabMessage': 'Messages de chat (Collab)',
'settings.notifyPackingTagged': 'Liste de bagages : attributions',
'settings.notifyWebhook': 'Notifications webhook',
'admin.smtp.title': 'E-mail et notifications',
'admin.smtp.hint': 'Configuration SMTP pour les notifications par e-mail. Optionnel : URL webhook pour Discord, Slack, etc.',
'admin.smtp.testButton': 'Envoyer un e-mail de test',
'admin.smtp.testSuccess': 'E-mail de test envoyé avec succès',
'admin.smtp.testFailed': 'Échec de l\'e-mail de test',
'dayplan.icsTooltip': 'Exporter le calendrier (ICS)',
'share.linkTitle': 'Lien public',
'share.linkHint': 'Créez un lien que n\'importe qui peut utiliser pour consulter ce voyage sans se connecter. Lecture seule — aucune modification possible.',
'share.createLink': 'Créer un lien',
'share.deleteLink': 'Supprimer le lien',
'share.createError': 'Impossible de créer le lien',
'common.copy': 'Copier',
'common.copied': 'Copié',
'share.permMap': 'Carte et plan',
'share.permBookings': 'Réservations',
'share.permPacking': 'Bagages',
'share.permBudget': 'Budget',
'share.permCollab': 'Chat',
'settings.on': 'Activé',
'settings.off': 'Désactivé',
'settings.account': 'Compte',
@@ -374,8 +401,8 @@ const fr: Record<string, string> = {
'admin.tabs.addons': 'Extensions',
'admin.addons.title': 'Extensions',
'admin.addons.subtitle': 'Activez ou désactivez des fonctionnalités pour personnaliser votre expérience TREK.',
'admin.addons.catalog.memories.name': 'Photos (Immich)',
'admin.addons.catalog.memories.description': 'Partagez vos photos de voyage via votre instance Immich',
'admin.addons.catalog.memories.name': 'Souvenirs',
'admin.addons.catalog.memories.description': 'Albums photo partagés pour chaque voyage',
'admin.addons.catalog.packing.name': 'Bagages',
'admin.addons.catalog.packing.description': 'Listes de contrôle pour préparer vos bagages pour chaque voyage',
'admin.addons.catalog.budget.name': 'Budget',
@@ -484,14 +511,6 @@ const fr: Record<string, string> = {
'vacay.sun': 'Dim',
'vacay.blockWeekends': 'Bloquer les week-ends',
'vacay.blockWeekendsHint': 'Empêcher les entrées de vacances les samedis et dimanches',
'vacay.weekendDays': 'Jours de week-end',
'vacay.mon': 'Lun',
'vacay.tue': 'Mar',
'vacay.wed': 'Mer',
'vacay.thu': 'Jeu',
'vacay.fri': 'Ven',
'vacay.sat': 'Sam',
'vacay.sun': 'Dim',
'vacay.publicHolidays': 'Jours fériés',
'vacay.publicHolidaysHint': 'Marquer les jours fériés dans le calendrier',
'vacay.selectCountry': 'Sélectionner un pays',
@@ -586,6 +605,10 @@ const fr: Record<string, string> = {
'atlas.markVisited': 'Marquer comme visité',
'atlas.markVisitedHint': 'Ajouter ce pays à votre liste de visités',
'atlas.addToBucket': 'Ajouter à la bucket list',
'atlas.addPoi': 'Ajouter un lieu',
'atlas.bucketNamePlaceholder': 'Nom (pays, ville, lieu…)',
'atlas.month': 'Mois',
'atlas.year': 'Année',
'atlas.addToBucketHint': 'Sauvegarder comme lieu à visiter',
'atlas.bucketWhen': 'Quand prévoyez-vous d\'y aller ?',
@@ -647,11 +670,14 @@ const fr: Record<string, string> = {
'places.importGpx': 'Importer GPX',
'places.gpxImported': '{count} lieux importés depuis GPX',
'places.gpxError': 'L\'import GPX a échoué',
'places.urlResolved': 'Lieu importé depuis l\'URL',
'places.assignToDay': 'Ajouter à quel jour ?',
'places.all': 'Tous',
'places.unplanned': 'Non planifiés',
'places.search': 'Rechercher des lieux…',
'places.allCategories': 'Toutes les catégories',
'places.categoriesSelected': 'catégories',
'places.clearFilter': 'Effacer le filtre',
'places.count': '{count} lieux',
'places.countSingular': '1 lieu',
'places.allPlanned': 'Tous les lieux sont planifiés',
@@ -1025,7 +1051,27 @@ const fr: Record<string, string> = {
'backup.auto.enable': 'Activer la sauvegarde automatique',
'backup.auto.enableHint': 'Les sauvegardes seront créées automatiquement selon le calendrier choisi',
'backup.auto.interval': 'Intervalle',
'backup.auto.hour': 'Exécuter à l\'heure',
'backup.auto.hourHint': 'Heure locale du serveur (format {format})',
'backup.auto.dayOfWeek': 'Jour de la semaine',
'backup.auto.dayOfMonth': 'Jour du mois',
'backup.auto.dayOfMonthHint': 'Limité à 128 pour la compatibilité avec tous les mois',
'backup.auto.scheduleSummary': 'Planification',
'backup.auto.summaryDaily': 'Tous les jours à {hour}h00',
'backup.auto.summaryWeekly': 'Chaque {day} à {hour}h00',
'backup.auto.summaryMonthly': 'Le {day} de chaque mois à {hour}h00',
'backup.auto.envLocked': 'Docker',
'backup.auto.envLockedHint': 'La sauvegarde automatique est configurée via les variables d\'environnement Docker. Pour modifier ces paramètres, mettez à jour votre docker-compose.yml et redémarrez le conteneur.',
'backup.auto.copyEnv': 'Copier les variables d\'env Docker',
'backup.auto.envCopied': 'Variables d\'env Docker copiées dans le presse-papiers',
'backup.auto.keepLabel': 'Supprimer les anciennes sauvegardes après',
'backup.dow.sunday': 'Dim',
'backup.dow.monday': 'Lun',
'backup.dow.tuesday': 'Mar',
'backup.dow.wednesday': 'Mer',
'backup.dow.thursday': 'Jeu',
'backup.dow.friday': 'Ven',
'backup.dow.saturday': 'Sam',
'backup.interval.hourly': 'Toutes les heures',
'backup.interval.daily': 'Quotidien',
'backup.interval.weekly': 'Hebdomadaire',

View File

@@ -140,6 +140,33 @@ const nl: Record<string, string> = {
'settings.timeFormat': 'Tijdnotatie',
'settings.routeCalculation': 'Routeberekening',
'settings.blurBookingCodes': 'Boekingscodes vervagen',
'settings.notifications': 'Meldingen',
'settings.notifyTripInvite': 'Reisuitnodigingen',
'settings.notifyBookingChange': 'Boekingswijzigingen',
'settings.notifyTripReminder': 'Reisherinneringen',
'settings.notifyVacayInvite': 'Vacay-fusieuitnodigingen',
'settings.notifyPhotosShared': 'Gedeelde foto\'s (Immich)',
'settings.notifyCollabMessage': 'Chatberichten (Collab)',
'settings.notifyPackingTagged': 'Paklijst: toewijzingen',
'settings.notifyWebhook': 'Webhook-meldingen',
'admin.smtp.title': 'E-mail en meldingen',
'admin.smtp.hint': 'SMTP-configuratie voor e-mailmeldingen. Optioneel: Webhook-URL voor Discord, Slack, etc.',
'admin.smtp.testButton': 'Test-e-mail verzenden',
'admin.smtp.testSuccess': 'Test-e-mail succesvol verzonden',
'admin.smtp.testFailed': 'Test-e-mail mislukt',
'dayplan.icsTooltip': 'Kalender exporteren (ICS)',
'share.linkTitle': 'Openbare link',
'share.linkHint': 'Maak een link die iedereen kan gebruiken om deze reis te bekijken zonder in te loggen. Alleen-lezen — bewerken niet mogelijk.',
'share.createLink': 'Link aanmaken',
'share.deleteLink': 'Link verwijderen',
'share.createError': 'Kon link niet aanmaken',
'common.copy': 'Kopiëren',
'common.copied': 'Gekopieerd',
'share.permMap': 'Kaart en plan',
'share.permBookings': 'Boekingen',
'share.permPacking': 'Paklijst',
'share.permBudget': 'Budget',
'share.permCollab': 'Chat',
'settings.on': 'Aan',
'settings.off': 'Uit',
'settings.account': 'Account',
@@ -374,8 +401,8 @@ const nl: Record<string, string> = {
'admin.tabs.addons': 'Add-ons',
'admin.addons.title': 'Add-ons',
'admin.addons.subtitle': 'Schakel functies in of uit om je TREK-ervaring aan te passen.',
'admin.addons.catalog.memories.name': 'Foto\'s (Immich)',
'admin.addons.catalog.memories.description': 'Deel reisfoto\'s via je Immich-instantie',
'admin.addons.catalog.memories.name': 'Herinneringen',
'admin.addons.catalog.memories.description': 'Gedeelde fotoalbums voor elke reis',
'admin.addons.catalog.packing.name': 'Inpakken',
'admin.addons.catalog.packing.description': 'Checklists om je bagage voor elke reis voor te bereiden',
'admin.addons.catalog.budget.name': 'Budget',
@@ -578,6 +605,10 @@ const nl: Record<string, string> = {
'atlas.markVisited': 'Markeren als bezocht',
'atlas.markVisitedHint': 'Dit land toevoegen aan je bezochte lijst',
'atlas.addToBucket': 'Aan bucket list toevoegen',
'atlas.addPoi': 'Plaats toevoegen',
'atlas.bucketNamePlaceholder': 'Naam (land, stad, plek…)',
'atlas.month': 'Maand',
'atlas.year': 'Jaar',
'atlas.addToBucketHint': 'Opslaan als plek die je wilt bezoeken',
'atlas.bucketWhen': 'Wanneer ben je van plan te gaan?',
@@ -639,11 +670,14 @@ const nl: Record<string, string> = {
'places.importGpx': 'GPX importeren',
'places.gpxImported': '{count} plaatsen geïmporteerd uit GPX',
'places.gpxError': 'GPX-import mislukt',
'places.urlResolved': 'Plaats geïmporteerd van URL',
'places.assignToDay': 'Aan welke dag toevoegen?',
'places.all': 'Alle',
'places.unplanned': 'Ongepland',
'places.search': 'Plaatsen zoeken...',
'places.allCategories': 'Alle categorieën',
'places.categoriesSelected': 'categorieën',
'places.clearFilter': 'Filter wissen',
'places.count': '{count} plaatsen',
'places.countSingular': '1 plaats',
'places.allPlanned': 'Alle plaatsen zijn gepland',
@@ -1017,7 +1051,27 @@ const nl: Record<string, string> = {
'backup.auto.enable': 'Auto-back-up inschakelen',
'backup.auto.enableHint': 'Back-ups worden automatisch aangemaakt volgens het gekozen schema',
'backup.auto.interval': 'Interval',
'backup.auto.hour': 'Uitvoeren om',
'backup.auto.hourHint': 'Lokale servertijd ({format}-notatie)',
'backup.auto.dayOfWeek': 'Dag van de week',
'backup.auto.dayOfMonth': 'Dag van de maand',
'backup.auto.dayOfMonthHint': 'Beperkt tot 128 voor compatibiliteit met alle maanden',
'backup.auto.scheduleSummary': 'Planning',
'backup.auto.summaryDaily': 'Elke dag om {hour}:00',
'backup.auto.summaryWeekly': 'Elke {day} om {hour}:00',
'backup.auto.summaryMonthly': 'Dag {day} van elke maand om {hour}:00',
'backup.auto.envLocked': 'Docker',
'backup.auto.envLockedHint': 'Auto-back-up is geconfigureerd via Docker-omgevingsvariabelen. Pas je docker-compose.yml aan en herstart de container om deze instellingen te wijzigen.',
'backup.auto.copyEnv': 'Docker-omgevingsvariabelen kopiëren',
'backup.auto.envCopied': 'Docker-omgevingsvariabelen gekopieerd naar klembord',
'backup.auto.keepLabel': 'Oude back-ups verwijderen na',
'backup.dow.sunday': 'Zo',
'backup.dow.monday': 'Ma',
'backup.dow.tuesday': 'Di',
'backup.dow.wednesday': 'Wo',
'backup.dow.thursday': 'Do',
'backup.dow.friday': 'Vr',
'backup.dow.saturday': 'Za',
'backup.interval.hourly': 'Elk uur',
'backup.interval.daily': 'Dagelijks',
'backup.interval.weekly': 'Wekelijks',

View File

@@ -140,6 +140,33 @@ const ru: Record<string, string> = {
'settings.timeFormat': 'Формат времени',
'settings.routeCalculation': 'Расчёт маршрута',
'settings.blurBookingCodes': 'Скрыть коды бронирования',
'settings.notifications': 'Уведомления',
'settings.notifyTripInvite': 'Приглашения в поездку',
'settings.notifyBookingChange': 'Изменения бронирований',
'settings.notifyTripReminder': 'Напоминания о поездке',
'settings.notifyVacayInvite': 'Приглашения слияния Vacay',
'settings.notifyPhotosShared': 'Общие фото (Immich)',
'settings.notifyCollabMessage': 'Сообщения чата (Collab)',
'settings.notifyPackingTagged': 'Список вещей: назначения',
'settings.notifyWebhook': 'Webhook-уведомления',
'admin.smtp.title': 'Почта и уведомления',
'admin.smtp.hint': 'Настройка SMTP для уведомлений по почте. Необязательно: Webhook URL для Discord, Slack и т.д.',
'admin.smtp.testButton': 'Отправить тестовое письмо',
'admin.smtp.testSuccess': 'Тестовое письмо успешно отправлено',
'admin.smtp.testFailed': 'Ошибка отправки тестового письма',
'dayplan.icsTooltip': 'Экспорт календаря (ICS)',
'share.linkTitle': 'Публичная ссылка',
'share.linkHint': 'Создайте ссылку, по которой любой сможет просмотреть эту поездку без входа в систему. Только чтение — редактирование невозможно.',
'share.createLink': 'Создать ссылку',
'share.deleteLink': 'Удалить ссылку',
'share.createError': 'Не удалось создать ссылку',
'common.copy': 'Копировать',
'common.copied': 'Скопировано',
'share.permMap': 'Карта и план',
'share.permBookings': 'Бронирования',
'share.permPacking': 'Вещи',
'share.permBudget': 'Бюджет',
'share.permCollab': 'Чат',
'settings.on': 'Вкл.',
'settings.off': 'Выкл.',
'settings.account': 'Аккаунт',
@@ -374,8 +401,8 @@ const ru: Record<string, string> = {
'admin.tabs.addons': 'Дополнения',
'admin.addons.title': 'Дополнения',
'admin.addons.subtitle': 'Включайте или отключайте функции для настройки TREK под себя.',
'admin.addons.catalog.memories.name': 'Фото (Immich)',
'admin.addons.catalog.memories.description': 'Делитесь фотографиями из поездок через Immich',
'admin.addons.catalog.memories.name': 'Воспоминания',
'admin.addons.catalog.memories.description': 'Общие фотоальбомы для каждой поездки',
'admin.addons.catalog.packing.name': 'Сборы',
'admin.addons.catalog.packing.description': 'Чек-листы для подготовки багажа к каждой поездке',
'admin.addons.catalog.budget.name': 'Бюджет',
@@ -578,6 +605,10 @@ const ru: Record<string, string> = {
'atlas.markVisited': 'Отметить как посещённую',
'atlas.markVisitedHint': 'Добавить эту страну в список посещённых',
'atlas.addToBucket': 'В список желаний',
'atlas.addPoi': 'Добавить место',
'atlas.bucketNamePlaceholder': 'Название (страна, город, место…)',
'atlas.month': 'Месяц',
'atlas.year': 'Год',
'atlas.addToBucketHint': 'Сохранить как место для посещения',
'atlas.bucketWhen': 'Когда вы планируете поехать?',
@@ -639,11 +670,14 @@ const ru: Record<string, string> = {
'places.importGpx': 'Импорт GPX',
'places.gpxImported': '{count} мест импортировано из GPX',
'places.gpxError': 'Ошибка импорта GPX',
'places.urlResolved': 'Место импортировано из URL',
'places.assignToDay': 'Добавить в какой день?',
'places.all': 'Все',
'places.unplanned': 'Незапланированные',
'places.search': 'Поиск мест...',
'places.allCategories': 'Все категории',
'places.categoriesSelected': 'категорий',
'places.clearFilter': 'Сбросить фильтр',
'places.count': '{count} мест',
'places.countSingular': '1 место',
'places.allPlanned': 'Все места запланированы',
@@ -1017,7 +1051,27 @@ const ru: Record<string, string> = {
'backup.auto.enable': 'Включить автокопирование',
'backup.auto.enableHint': 'Резервные копии будут создаваться автоматически по выбранному расписанию',
'backup.auto.interval': 'Интервал',
'backup.auto.hour': 'Запуск в час',
'backup.auto.hourHint': 'Местное время сервера (формат {format})',
'backup.auto.dayOfWeek': 'День недели',
'backup.auto.dayOfMonth': 'День месяца',
'backup.auto.dayOfMonthHint': 'Ограничено 128 для совместимости со всеми месяцами',
'backup.auto.scheduleSummary': 'Расписание',
'backup.auto.summaryDaily': 'Каждый день в {hour}:00',
'backup.auto.summaryWeekly': 'Каждый {day} в {hour}:00',
'backup.auto.summaryMonthly': '{day}-го числа каждого месяца в {hour}:00',
'backup.auto.envLocked': 'Docker',
'backup.auto.envLockedHint': 'Автокопирование настроено через переменные окружения Docker. Чтобы изменить параметры, обновите docker-compose.yml и перезапустите контейнер.',
'backup.auto.copyEnv': 'Скопировать переменные окружения Docker',
'backup.auto.envCopied': 'Переменные окружения Docker скопированы в буфер обмена',
'backup.auto.keepLabel': 'Удалять старые копии через',
'backup.dow.sunday': 'Вс',
'backup.dow.monday': 'Пн',
'backup.dow.tuesday': 'Вт',
'backup.dow.wednesday': 'Ср',
'backup.dow.thursday': 'Чт',
'backup.dow.friday': 'Пт',
'backup.dow.saturday': 'Сб',
'backup.interval.hourly': 'Каждый час',
'backup.interval.daily': 'Ежедневно',
'backup.interval.weekly': 'Еженедельно',

View File

@@ -140,6 +140,33 @@ const zh: Record<string, string> = {
'settings.timeFormat': '时间格式',
'settings.routeCalculation': '路线计算',
'settings.blurBookingCodes': '模糊预订代码',
'settings.notifications': '通知',
'settings.notifyTripInvite': '旅行邀请',
'settings.notifyBookingChange': '预订变更',
'settings.notifyTripReminder': '旅行提醒',
'settings.notifyVacayInvite': 'Vacay 融合邀请',
'settings.notifyPhotosShared': '共享照片 (Immich)',
'settings.notifyCollabMessage': '聊天消息 (Collab)',
'settings.notifyPackingTagged': '行李清单:分配',
'settings.notifyWebhook': 'Webhook 通知',
'admin.smtp.title': '邮件与通知',
'admin.smtp.hint': '用于邮件通知的 SMTP 配置。可选Discord、Slack 等的 Webhook URL。',
'admin.smtp.testButton': '发送测试邮件',
'admin.smtp.testSuccess': '测试邮件发送成功',
'admin.smtp.testFailed': '测试邮件发送失败',
'dayplan.icsTooltip': '导出日历 (ICS)',
'share.linkTitle': '公开链接',
'share.linkHint': '创建一个链接,任何人无需登录即可查看此旅行。仅可查看,无法编辑。',
'share.createLink': '创建链接',
'share.deleteLink': '删除链接',
'share.createError': '无法创建链接',
'common.copy': '复制',
'common.copied': '已复制',
'share.permMap': '地图与计划',
'share.permBookings': '预订',
'share.permPacking': '行李',
'share.permBudget': '预算',
'share.permCollab': '聊天',
'settings.on': '开',
'settings.off': '关',
'settings.account': '账户',
@@ -374,8 +401,8 @@ const zh: Record<string, string> = {
'admin.tabs.addons': '扩展',
'admin.addons.title': '扩展',
'admin.addons.subtitle': '启用或禁用功能以自定义你的 TREK 体验。',
'admin.addons.catalog.memories.name': '照片 (Immich)',
'admin.addons.catalog.memories.description': '通过 Immich 实例分享旅行照片',
'admin.addons.catalog.memories.name': '回忆',
'admin.addons.catalog.memories.description': '每次旅行的共享相册',
'admin.addons.catalog.packing.name': '行李',
'admin.addons.catalog.packing.description': '每次旅行的行李准备清单',
'admin.addons.catalog.budget.name': '预算',
@@ -578,6 +605,10 @@ const zh: Record<string, string> = {
'atlas.markVisited': '标记为已访问',
'atlas.markVisitedHint': '将此国家添加到已访问列表',
'atlas.addToBucket': '添加到心愿单',
'atlas.addPoi': '添加地点',
'atlas.bucketNamePlaceholder': '名称(国家、城市、地点…)',
'atlas.month': '月份',
'atlas.year': '年份',
'atlas.addToBucketHint': '保存为想去的地方',
'atlas.bucketWhen': '你计划什么时候去?',
@@ -639,11 +670,14 @@ const zh: Record<string, string> = {
'places.importGpx': '导入 GPX',
'places.gpxImported': '已从 GPX 导入 {count} 个地点',
'places.gpxError': 'GPX 导入失败',
'places.urlResolved': '已从 URL 导入地点',
'places.assignToDay': '添加到哪一天?',
'places.all': '全部',
'places.unplanned': '未规划',
'places.search': '搜索地点...',
'places.allCategories': '所有分类',
'places.categoriesSelected': '个分类',
'places.clearFilter': '清除筛选',
'places.count': '{count} 个地点',
'places.countSingular': '1 个地点',
'places.allPlanned': '所有地点已规划',
@@ -1017,7 +1051,27 @@ const zh: Record<string, string> = {
'backup.auto.enable': '启用自动备份',
'backup.auto.enableHint': '将按所选计划自动创建备份',
'backup.auto.interval': '间隔',
'backup.auto.hour': '执行时间',
'backup.auto.hourHint': '服务器本地时间({format} 格式)',
'backup.auto.dayOfWeek': '星期几',
'backup.auto.dayOfMonth': '每月几号',
'backup.auto.dayOfMonthHint': '限 128 以兼容所有月份',
'backup.auto.scheduleSummary': '计划',
'backup.auto.summaryDaily': '每天 {hour}:00',
'backup.auto.summaryWeekly': '每{day} {hour}:00',
'backup.auto.summaryMonthly': '每月 {day} 号 {hour}:00',
'backup.auto.envLocked': 'Docker',
'backup.auto.envLockedHint': '自动备份通过 Docker 环境变量配置。要更改设置,请更新 docker-compose.yml 并重启容器。',
'backup.auto.copyEnv': '复制 Docker 环境变量',
'backup.auto.envCopied': 'Docker 环境变量已复制到剪贴板',
'backup.auto.keepLabel': '自动删除旧备份',
'backup.dow.sunday': '周日',
'backup.dow.monday': '周一',
'backup.dow.tuesday': '周二',
'backup.dow.wednesday': '周三',
'backup.dow.thursday': '周四',
'backup.dow.friday': '周五',
'backup.dow.saturday': '周六',
'backup.interval.hourly': '每小时',
'backup.interval.daily': '每天',
'backup.interval.weekly': '每周',