mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-06-19 13:21:46 +00:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 597a5f7a1d | |||
| 42c216b00b | |||
| f3751ab9aa | |||
| 9e8d101d63 |
@@ -1,11 +1,6 @@
|
||||
name: Build & Push Docker Image (Prerelease)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [dev]
|
||||
paths-ignore:
|
||||
- 'docs/**'
|
||||
- '**/*.md'
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
bump:
|
||||
|
||||
@@ -11,6 +11,7 @@ interface PreferencesMatrix {
|
||||
available_channels: { email: boolean; webhook: boolean; inapp: boolean; ntfy: boolean }
|
||||
event_types: string[]
|
||||
implemented_combos: Record<string, string[]>
|
||||
defaults?: { ntfyServer: string | null }
|
||||
}
|
||||
|
||||
const CHANNEL_LABEL_KEYS: Record<string, string> = {
|
||||
@@ -233,7 +234,7 @@ export default function NotificationsTab(): React.ReactElement {
|
||||
type="text"
|
||||
value={ntfyServer}
|
||||
onChange={e => setNtfyServer(e.target.value)}
|
||||
placeholder={t('settings.ntfyUrl.serverPlaceholder')}
|
||||
placeholder={matrix.defaults?.ntfyServer || t('settings.ntfyUrl.serverPlaceholder')}
|
||||
style={{ width: '100%', boxSizing: 'border-box', fontSize: 13, padding: '6px 10px', border: '1px solid var(--border-primary)', borderRadius: 6, background: 'var(--bg-primary)', color: 'var(--text-primary)', marginBottom: 6 }}
|
||||
/>
|
||||
<label style={{ display: 'block', fontSize: 12, fontWeight: 600, color: 'var(--text-secondary)', marginBottom: 4 }}>
|
||||
@@ -253,7 +254,7 @@ export default function NotificationsTab(): React.ReactElement {
|
||||
onClick={clearNtfyToken}
|
||||
style={{ fontSize: 12, padding: '6px 12px', background: 'transparent', color: 'var(--color-danger, #e53e3e)', border: '1px solid var(--color-danger, #e53e3e)', borderRadius: 6, cursor: 'pointer' }}
|
||||
>
|
||||
{t('settings.ntfyUrl.clearToken')}
|
||||
{t('common.clear')}
|
||||
</button>
|
||||
)}
|
||||
<button
|
||||
|
||||
@@ -8,6 +8,7 @@ const ar: Record<string, string | { name: string; category: string }[]> = {
|
||||
'common.showMore': 'عرض المزيد',
|
||||
'common.showLess': 'عرض أقل',
|
||||
'common.cancel': 'إلغاء',
|
||||
'common.clear': 'مسح',
|
||||
'common.delete': 'حذف',
|
||||
'common.edit': 'تعديل',
|
||||
'common.add': 'إضافة',
|
||||
@@ -1824,7 +1825,6 @@ const ar: Record<string, string | { name: string; category: string }[]> = {
|
||||
'settings.ntfyUrl.test': 'اختبار',
|
||||
'settings.ntfyUrl.testSuccess': 'تم إرسال إشعار Ntfy التجريبي بنجاح',
|
||||
'settings.ntfyUrl.testFailed': 'فشل إشعار Ntfy التجريبي',
|
||||
'settings.ntfyUrl.clearToken': 'مسح',
|
||||
'settings.ntfyUrl.tokenCleared': 'تم مسح رمز الوصول',
|
||||
'settings.notificationPreferences.inapp': 'In-App',
|
||||
'settings.notificationPreferences.webhook': 'Webhook',
|
||||
@@ -1841,16 +1841,19 @@ const ar: Record<string, string | { name: string; category: string }[]> = {
|
||||
'admin.notifications.adminWebhookPanel.testFailed': 'فشل إرسال Webhook الاختباري',
|
||||
'admin.notifications.adminWebhookPanel.alwaysOnHint': 'يُرسل Webhook المسؤول تلقائيًا عند تعيين رابط URL',
|
||||
'admin.notifications.ntfy': 'Ntfy',
|
||||
'admin.ntfy.hint': 'تسمح للمستخدمين بإعداد موضوعات ntfy الخاصة لتلقي إشعارات الدفع. قم بتعيين الخادم الافتراضي أدناه لملء إعدادات المستخدم مسبقًا.',
|
||||
'admin.notifications.testNtfy': 'إرسال Ntfy تجريبي',
|
||||
'admin.notifications.testNtfySuccess': 'تم إرسال Ntfy التجريبي بنجاح',
|
||||
'admin.notifications.testNtfyFailed': 'فشل إرسال Ntfy التجريبي',
|
||||
'admin.notifications.adminNtfyPanel.title': 'Ntfy المسؤول',
|
||||
'admin.notifications.adminNtfyPanel.hint': 'يُستخدم موضوع Ntfy هذا حصريًا لإشعارات المسؤول (مثل تنبيهات الإصدارات). وهو مستقل عن مواضيع المستخدمين ويُرسل دائمًا عند تهيئته.',
|
||||
'admin.notifications.adminNtfyPanel.serverLabel': 'عنوان URL خادم Ntfy',
|
||||
'admin.notifications.adminNtfyPanel.serverHint': 'يُستخدم أيضًا كخادم افتراضي لإشعارات ntfy للمستخدمين. اتركه فارغًا لاستخدام ntfy.sh. يمكن للمستخدمين تغييره في إعداداتهم الخاصة.',
|
||||
'admin.notifications.adminNtfyPanel.serverPlaceholder': 'https://ntfy.sh',
|
||||
'admin.notifications.adminNtfyPanel.topicLabel': 'موضوع المسؤول',
|
||||
'admin.notifications.adminNtfyPanel.topicPlaceholder': 'trek-admin-alerts',
|
||||
'admin.notifications.adminNtfyPanel.tokenLabel': 'رمز الوصول (اختياري)',
|
||||
'admin.notifications.adminNtfyPanel.tokenCleared': 'تم مسح رمز وصول المسؤول',
|
||||
'admin.notifications.adminNtfyPanel.saved': 'تم حفظ إعدادات Ntfy للمسؤول',
|
||||
'admin.notifications.adminNtfyPanel.test': 'إرسال Ntfy تجريبي',
|
||||
'admin.notifications.adminNtfyPanel.testSuccess': 'تم إرسال Ntfy التجريبي بنجاح',
|
||||
|
||||
@@ -4,6 +4,7 @@ const br: Record<string, string | { name: string; category: string }[]> = {
|
||||
'common.showMore': 'Mostrar mais',
|
||||
'common.showLess': 'Mostrar menos',
|
||||
'common.cancel': 'Cancelar',
|
||||
'common.clear': 'Limpar',
|
||||
'common.delete': 'Excluir',
|
||||
'common.edit': 'Editar',
|
||||
'common.add': 'Adicionar',
|
||||
@@ -1773,7 +1774,6 @@ const br: Record<string, string | { name: string; category: string }[]> = {
|
||||
'settings.ntfyUrl.test': 'Testar',
|
||||
'settings.ntfyUrl.testSuccess': 'Notificação de teste do Ntfy enviada com sucesso',
|
||||
'settings.ntfyUrl.testFailed': 'Falha na notificação de teste do Ntfy',
|
||||
'settings.ntfyUrl.clearToken': 'Limpar',
|
||||
'settings.ntfyUrl.tokenCleared': 'Token de acesso removido',
|
||||
'settings.notificationPreferences.inapp': 'In-App',
|
||||
'settings.notificationPreferences.webhook': 'Webhook',
|
||||
@@ -1790,16 +1790,19 @@ const br: Record<string, string | { name: string; category: string }[]> = {
|
||||
'admin.notifications.adminWebhookPanel.testFailed': 'Falha no webhook de teste',
|
||||
'admin.notifications.adminWebhookPanel.alwaysOnHint': 'O webhook de admin dispara automaticamente quando uma URL está configurada',
|
||||
'admin.notifications.ntfy': 'Ntfy',
|
||||
'admin.ntfy.hint': 'Permite que os usuários configurem seus próprios tópicos ntfy para notificações push. Configure o servidor padrão abaixo para preencher as configurações do usuário.',
|
||||
'admin.notifications.testNtfy': 'Enviar Ntfy de teste',
|
||||
'admin.notifications.testNtfySuccess': 'Ntfy de teste enviado com sucesso',
|
||||
'admin.notifications.testNtfyFailed': 'Falha ao enviar Ntfy de teste',
|
||||
'admin.notifications.adminNtfyPanel.title': 'Ntfy de admin',
|
||||
'admin.notifications.adminNtfyPanel.hint': 'Este tópico Ntfy é usado exclusivamente para notificações de admin (ex. alertas de versão). É independente dos tópicos por usuário e sempre dispara quando configurado.',
|
||||
'admin.notifications.adminNtfyPanel.serverLabel': 'URL do servidor Ntfy',
|
||||
'admin.notifications.adminNtfyPanel.serverHint': 'Também usado como servidor padrão para notificações ntfy dos usuários. Deixe em branco para usar ntfy.sh. Os usuários podem substituir isso em suas próprias configurações.',
|
||||
'admin.notifications.adminNtfyPanel.serverPlaceholder': 'https://ntfy.sh',
|
||||
'admin.notifications.adminNtfyPanel.topicLabel': 'Tópico de admin',
|
||||
'admin.notifications.adminNtfyPanel.topicPlaceholder': 'trek-admin-alerts',
|
||||
'admin.notifications.adminNtfyPanel.tokenLabel': 'Token de acesso (opcional)',
|
||||
'admin.notifications.adminNtfyPanel.tokenCleared': 'Token de acesso admin removido',
|
||||
'admin.notifications.adminNtfyPanel.saved': 'Configurações de Ntfy de admin salvas',
|
||||
'admin.notifications.adminNtfyPanel.test': 'Enviar Ntfy de teste',
|
||||
'admin.notifications.adminNtfyPanel.testSuccess': 'Ntfy de teste enviado com sucesso',
|
||||
|
||||
@@ -4,6 +4,7 @@ const cs: Record<string, string | { name: string; category: string }[]> = {
|
||||
'common.showMore': 'Zobrazit více',
|
||||
'common.showLess': 'Zobrazit méně',
|
||||
'common.cancel': 'Zrušit',
|
||||
'common.clear': 'Vymazat',
|
||||
'common.delete': 'Smazat',
|
||||
'common.edit': 'Upravit',
|
||||
'common.add': 'Přidat',
|
||||
@@ -1778,7 +1779,6 @@ const cs: Record<string, string | { name: string; category: string }[]> = {
|
||||
'settings.ntfyUrl.test': 'Otestovat',
|
||||
'settings.ntfyUrl.testSuccess': 'Testovací notifikace Ntfy byla úspěšně odeslána',
|
||||
'settings.ntfyUrl.testFailed': 'Testovací notifikace Ntfy selhala',
|
||||
'settings.ntfyUrl.clearToken': 'Vymazat',
|
||||
'settings.ntfyUrl.tokenCleared': 'Přístupový token byl vymazán',
|
||||
'settings.notificationPreferences.inapp': 'In-App',
|
||||
'settings.notificationPreferences.webhook': 'Webhook',
|
||||
@@ -1795,16 +1795,19 @@ const cs: Record<string, string | { name: string; category: string }[]> = {
|
||||
'admin.notifications.adminWebhookPanel.testFailed': 'Testovací webhook selhal',
|
||||
'admin.notifications.adminWebhookPanel.alwaysOnHint': 'Admin webhook odesílá automaticky, pokud je nastavena URL',
|
||||
'admin.notifications.ntfy': 'Ntfy',
|
||||
'admin.ntfy.hint': 'Umožňuje uživatelům nakonfigurovat vlastní témata ntfy pro přijímání push notifikací. Níže nastavte výchozí server pro předvyplnění nastavení uživatelů.',
|
||||
'admin.notifications.testNtfy': 'Odeslat testovací Ntfy',
|
||||
'admin.notifications.testNtfySuccess': 'Testovací Ntfy bylo úspěšně odesláno',
|
||||
'admin.notifications.testNtfyFailed': 'Testovací Ntfy selhalo',
|
||||
'admin.notifications.adminNtfyPanel.title': 'Admin Ntfy',
|
||||
'admin.notifications.adminNtfyPanel.hint': 'Toto téma Ntfy se používá výhradně pro admin oznámení (např. upozornění na verze). Je nezávislé na tématech uživatelů a odesílá vždy, když je nakonfigurováno.',
|
||||
'admin.notifications.adminNtfyPanel.serverLabel': 'URL serveru Ntfy',
|
||||
'admin.notifications.adminNtfyPanel.serverHint': 'Slouží také jako výchozí server pro ntfy notifikace uživatelů. Ponechte prázdné pro použití ntfy.sh. Uživatelé si to mohou změnit ve vlastním nastavení.',
|
||||
'admin.notifications.adminNtfyPanel.serverPlaceholder': 'https://ntfy.sh',
|
||||
'admin.notifications.adminNtfyPanel.topicLabel': 'Admin téma',
|
||||
'admin.notifications.adminNtfyPanel.topicPlaceholder': 'trek-admin-alerts',
|
||||
'admin.notifications.adminNtfyPanel.tokenLabel': 'Přístupový token (volitelné)',
|
||||
'admin.notifications.adminNtfyPanel.tokenCleared': 'Přístupový token admina byl vymazán',
|
||||
'admin.notifications.adminNtfyPanel.saved': 'Nastavení admin Ntfy uloženo',
|
||||
'admin.notifications.adminNtfyPanel.test': 'Odeslat testovací Ntfy',
|
||||
'admin.notifications.adminNtfyPanel.testSuccess': 'Testovací Ntfy bylo úspěšně odesláno',
|
||||
|
||||
@@ -4,6 +4,7 @@ const de: Record<string, string | { name: string; category: string }[]> = {
|
||||
'common.showMore': 'Mehr anzeigen',
|
||||
'common.showLess': 'Weniger anzeigen',
|
||||
'common.cancel': 'Abbrechen',
|
||||
'common.clear': 'Löschen',
|
||||
'common.delete': 'Löschen',
|
||||
'common.edit': 'Bearbeiten',
|
||||
'common.add': 'Hinzufügen',
|
||||
@@ -1781,7 +1782,6 @@ const de: Record<string, string | { name: string; category: string }[]> = {
|
||||
'settings.ntfyUrl.test': 'Testen',
|
||||
'settings.ntfyUrl.testSuccess': 'Test-Ntfy-Benachrichtigung erfolgreich gesendet',
|
||||
'settings.ntfyUrl.testFailed': 'Test-Ntfy-Benachrichtigung fehlgeschlagen',
|
||||
'settings.ntfyUrl.clearToken': 'Löschen',
|
||||
'settings.ntfyUrl.tokenCleared': 'Zugriffstoken gelöscht',
|
||||
'settings.notificationPreferences.inapp': 'In-App',
|
||||
'settings.notificationPreferences.webhook': 'Webhook',
|
||||
@@ -1798,16 +1798,19 @@ const de: Record<string, string | { name: string; category: string }[]> = {
|
||||
'admin.notifications.adminWebhookPanel.testFailed': 'Test-Webhook fehlgeschlagen',
|
||||
'admin.notifications.adminWebhookPanel.alwaysOnHint': 'Admin-Webhook sendet automatisch, wenn eine URL konfiguriert ist',
|
||||
'admin.notifications.ntfy': 'Ntfy',
|
||||
'admin.ntfy.hint': 'Erlaubt Benutzern, eigene ntfy-Themen für Push-Benachrichtigungen zu konfigurieren. Legen Sie unten den Standardserver fest, um die Benutzereinstellungen vorauszufüllen.',
|
||||
'admin.notifications.testNtfy': 'Test-Ntfy senden',
|
||||
'admin.notifications.testNtfySuccess': 'Test-Ntfy erfolgreich gesendet',
|
||||
'admin.notifications.testNtfyFailed': 'Test-Ntfy fehlgeschlagen',
|
||||
'admin.notifications.adminNtfyPanel.title': 'Admin-Ntfy',
|
||||
'admin.notifications.adminNtfyPanel.hint': 'Dieses Ntfy-Thema wird ausschließlich für Admin-Benachrichtigungen verwendet (z. B. Versions-Updates). Es ist unabhängig von Benutzer-Themen und sendet immer, wenn es konfiguriert ist.',
|
||||
'admin.notifications.adminNtfyPanel.serverLabel': 'Ntfy-Server-URL',
|
||||
'admin.notifications.adminNtfyPanel.serverHint': 'Wird auch als Standardserver für Benutzer-ntfy-Benachrichtigungen verwendet. Leer lassen für ntfy.sh. Benutzer können dies in ihren eigenen Einstellungen überschreiben.',
|
||||
'admin.notifications.adminNtfyPanel.serverPlaceholder': 'https://ntfy.sh',
|
||||
'admin.notifications.adminNtfyPanel.topicLabel': 'Admin-Thema',
|
||||
'admin.notifications.adminNtfyPanel.topicPlaceholder': 'trek-admin-alerts',
|
||||
'admin.notifications.adminNtfyPanel.tokenLabel': 'Zugriffstoken (optional)',
|
||||
'admin.notifications.adminNtfyPanel.tokenCleared': 'Admin-Zugriffstoken gelöscht',
|
||||
'admin.notifications.adminNtfyPanel.saved': 'Admin-Ntfy-Einstellungen gespeichert',
|
||||
'admin.notifications.adminNtfyPanel.test': 'Test-Ntfy senden',
|
||||
'admin.notifications.adminNtfyPanel.testSuccess': 'Test-Ntfy erfolgreich gesendet',
|
||||
|
||||
@@ -4,6 +4,7 @@ const en: Record<string, string | { name: string; category: string }[]> = {
|
||||
'common.showMore': 'Show more',
|
||||
'common.showLess': 'Show less',
|
||||
'common.cancel': 'Cancel',
|
||||
'common.clear': 'Clear',
|
||||
'common.delete': 'Delete',
|
||||
'common.edit': 'Edit',
|
||||
'common.add': 'Add',
|
||||
@@ -209,7 +210,6 @@ const en: Record<string, string | { name: string; category: string }[]> = {
|
||||
'settings.ntfyUrl.test': 'Test',
|
||||
'settings.ntfyUrl.testSuccess': 'Test ntfy notification sent successfully',
|
||||
'settings.ntfyUrl.testFailed': 'Test ntfy notification failed',
|
||||
'settings.ntfyUrl.clearToken': 'Clear',
|
||||
'settings.ntfyUrl.tokenCleared': 'Access token cleared',
|
||||
'admin.notifications.title': 'Notifications',
|
||||
'admin.notifications.hint': 'Choose one notification channel. Only one can be active at a time.',
|
||||
@@ -217,6 +217,7 @@ const en: Record<string, string | { name: string; category: string }[]> = {
|
||||
'admin.notifications.email': 'Email (SMTP)',
|
||||
'admin.notifications.webhook': 'Webhook',
|
||||
'admin.notifications.ntfy': 'Ntfy',
|
||||
'admin.ntfy.hint': 'Allow users to configure their own ntfy topics for push notifications. Set the default server below to pre-fill user settings.',
|
||||
'admin.notifications.save': 'Save notification settings',
|
||||
'admin.notifications.saved': 'Notification settings saved',
|
||||
'admin.notifications.testWebhook': 'Send test webhook',
|
||||
@@ -238,10 +239,12 @@ const en: Record<string, string | { name: string; category: string }[]> = {
|
||||
'admin.notifications.adminNtfyPanel.title': 'Admin Ntfy',
|
||||
'admin.notifications.adminNtfyPanel.hint': 'This ntfy topic is used exclusively for admin notifications (e.g. version alerts). It is separate from per-user topics and always fires when configured.',
|
||||
'admin.notifications.adminNtfyPanel.serverLabel': 'Ntfy Server URL',
|
||||
'admin.notifications.adminNtfyPanel.serverHint': 'Also used as the default server for user ntfy notifications. Leave blank to default to ntfy.sh. Users can override this in their own settings.',
|
||||
'admin.notifications.adminNtfyPanel.serverPlaceholder': 'https://ntfy.sh',
|
||||
'admin.notifications.adminNtfyPanel.topicLabel': 'Admin Topic',
|
||||
'admin.notifications.adminNtfyPanel.topicPlaceholder': 'trek-admin-alerts',
|
||||
'admin.notifications.adminNtfyPanel.tokenLabel': 'Access Token (optional)',
|
||||
'admin.notifications.adminNtfyPanel.tokenCleared': 'Admin access token cleared',
|
||||
'admin.notifications.adminNtfyPanel.saved': 'Admin ntfy settings saved',
|
||||
'admin.notifications.adminNtfyPanel.test': 'Send test ntfy',
|
||||
'admin.notifications.adminNtfyPanel.testSuccess': 'Test ntfy sent successfully',
|
||||
|
||||
@@ -4,6 +4,7 @@ const es: Record<string, string> = {
|
||||
'common.showMore': 'Ver más',
|
||||
'common.showLess': 'Ver menos',
|
||||
'common.cancel': 'Cancelar',
|
||||
'common.clear': 'Borrar',
|
||||
'common.delete': 'Eliminar',
|
||||
'common.edit': 'Editar',
|
||||
'common.add': 'Añadir',
|
||||
@@ -1783,7 +1784,6 @@ const es: Record<string, string> = {
|
||||
'settings.ntfyUrl.test': 'Probar',
|
||||
'settings.ntfyUrl.testSuccess': 'Notificación de prueba de Ntfy enviada correctamente',
|
||||
'settings.ntfyUrl.testFailed': 'Error en la notificación de prueba de Ntfy',
|
||||
'settings.ntfyUrl.clearToken': 'Borrar',
|
||||
'settings.ntfyUrl.tokenCleared': 'Token de acceso eliminado',
|
||||
'settings.notificationPreferences.inapp': 'In-App',
|
||||
'settings.notificationPreferences.webhook': 'Webhook',
|
||||
@@ -1800,16 +1800,19 @@ const es: Record<string, string> = {
|
||||
'admin.notifications.adminWebhookPanel.testFailed': 'Error al enviar el webhook de prueba',
|
||||
'admin.notifications.adminWebhookPanel.alwaysOnHint': 'El webhook de admin se activa automáticamente si hay una URL configurada',
|
||||
'admin.notifications.ntfy': 'Ntfy',
|
||||
'admin.ntfy.hint': 'Permite a los usuarios configurar sus propios temas ntfy para notificaciones push. Establece el servidor predeterminado a continuación para rellenar automáticamente los ajustes del usuario.',
|
||||
'admin.notifications.testNtfy': 'Enviar Ntfy de prueba',
|
||||
'admin.notifications.testNtfySuccess': 'Ntfy de prueba enviado correctamente',
|
||||
'admin.notifications.testNtfyFailed': 'Error al enviar el Ntfy de prueba',
|
||||
'admin.notifications.adminNtfyPanel.title': 'Ntfy de admin',
|
||||
'admin.notifications.adminNtfyPanel.hint': 'Este tema Ntfy se usa exclusivamente para notificaciones de admin (ej. alertas de versión). Es independiente de los temas por usuario y siempre se activa cuando está configurado.',
|
||||
'admin.notifications.adminNtfyPanel.serverLabel': 'URL del servidor Ntfy',
|
||||
'admin.notifications.adminNtfyPanel.serverHint': 'También se usa como servidor predeterminado para las notificaciones ntfy de los usuarios. Déjalo en blanco para usar ntfy.sh. Los usuarios pueden cambiarlo en sus propios ajustes.',
|
||||
'admin.notifications.adminNtfyPanel.serverPlaceholder': 'https://ntfy.sh',
|
||||
'admin.notifications.adminNtfyPanel.topicLabel': 'Tema de admin',
|
||||
'admin.notifications.adminNtfyPanel.topicPlaceholder': 'trek-admin-alerts',
|
||||
'admin.notifications.adminNtfyPanel.tokenLabel': 'Token de acceso (opcional)',
|
||||
'admin.notifications.adminNtfyPanel.tokenCleared': 'Token de acceso de admin eliminado',
|
||||
'admin.notifications.adminNtfyPanel.saved': 'Configuración de Ntfy de admin guardada',
|
||||
'admin.notifications.adminNtfyPanel.test': 'Enviar Ntfy de prueba',
|
||||
'admin.notifications.adminNtfyPanel.testSuccess': 'Ntfy de prueba enviado correctamente',
|
||||
|
||||
@@ -4,6 +4,7 @@ const fr: Record<string, string> = {
|
||||
'common.showMore': 'Voir plus',
|
||||
'common.showLess': 'Voir moins',
|
||||
'common.cancel': 'Annuler',
|
||||
'common.clear': 'Effacer',
|
||||
'common.delete': 'Supprimer',
|
||||
'common.edit': 'Modifier',
|
||||
'common.add': 'Ajouter',
|
||||
@@ -1777,7 +1778,6 @@ const fr: Record<string, string> = {
|
||||
'settings.ntfyUrl.test': 'Tester',
|
||||
'settings.ntfyUrl.testSuccess': 'Notification de test Ntfy envoyée avec succès',
|
||||
'settings.ntfyUrl.testFailed': 'Échec de la notification de test Ntfy',
|
||||
'settings.ntfyUrl.clearToken': 'Effacer',
|
||||
'settings.ntfyUrl.tokenCleared': "Jeton d'accès effacé",
|
||||
'settings.notificationPreferences.inapp': 'In-App',
|
||||
'settings.notificationPreferences.webhook': 'Webhook',
|
||||
@@ -1794,16 +1794,19 @@ const fr: Record<string, string> = {
|
||||
'admin.notifications.adminWebhookPanel.testFailed': 'Échec du webhook de test',
|
||||
'admin.notifications.adminWebhookPanel.alwaysOnHint': 'Le webhook admin s\'active automatiquement si une URL est configurée',
|
||||
'admin.notifications.ntfy': 'Ntfy',
|
||||
'admin.ntfy.hint': 'Permet aux utilisateurs de configurer leurs propres sujets ntfy pour les notifications push. Définissez le serveur par défaut ci-dessous pour pré-remplir les paramètres utilisateur.',
|
||||
'admin.notifications.testNtfy': 'Envoyer un Ntfy de test',
|
||||
'admin.notifications.testNtfySuccess': 'Ntfy de test envoyé avec succès',
|
||||
'admin.notifications.testNtfyFailed': 'Échec de l\'envoi du Ntfy de test',
|
||||
'admin.notifications.adminNtfyPanel.title': 'Ntfy admin',
|
||||
'admin.notifications.adminNtfyPanel.hint': 'Ce sujet Ntfy est utilisé exclusivement pour les notifications admin (ex. alertes de version). Il est séparé des sujets par utilisateur et s\'active toujours lorsqu\'il est configuré.',
|
||||
'admin.notifications.adminNtfyPanel.serverLabel': 'URL du serveur Ntfy',
|
||||
'admin.notifications.adminNtfyPanel.serverHint': 'Utilisé également comme serveur par défaut pour les notifications ntfy des utilisateurs. Laisser vide pour utiliser ntfy.sh. Les utilisateurs peuvent le modifier dans leurs propres paramètres.',
|
||||
'admin.notifications.adminNtfyPanel.serverPlaceholder': 'https://ntfy.sh',
|
||||
'admin.notifications.adminNtfyPanel.topicLabel': 'Sujet admin',
|
||||
'admin.notifications.adminNtfyPanel.topicPlaceholder': 'trek-admin-alerts',
|
||||
'admin.notifications.adminNtfyPanel.tokenLabel': "Jeton d'accès (optionnel)",
|
||||
'admin.notifications.adminNtfyPanel.tokenCleared': "Jeton d'accès admin effacé",
|
||||
'admin.notifications.adminNtfyPanel.saved': 'Paramètres Ntfy admin enregistrés',
|
||||
'admin.notifications.adminNtfyPanel.test': 'Envoyer un Ntfy de test',
|
||||
'admin.notifications.adminNtfyPanel.testSuccess': 'Ntfy de test envoyé avec succès',
|
||||
|
||||
@@ -4,6 +4,7 @@ const hu: Record<string, string | { name: string; category: string }[]> = {
|
||||
'common.showMore': 'Továbbiak',
|
||||
'common.showLess': 'Kevesebb',
|
||||
'common.cancel': 'Mégse',
|
||||
'common.clear': 'Törlés',
|
||||
'common.delete': 'Törlés',
|
||||
'common.edit': 'Szerkesztés',
|
||||
'common.add': 'Hozzáadás',
|
||||
@@ -1775,7 +1776,6 @@ const hu: Record<string, string | { name: string; category: string }[]> = {
|
||||
'settings.ntfyUrl.test': 'Teszt',
|
||||
'settings.ntfyUrl.testSuccess': 'Teszt Ntfy értesítés sikeresen elküldve',
|
||||
'settings.ntfyUrl.testFailed': 'Teszt Ntfy értesítés sikertelen',
|
||||
'settings.ntfyUrl.clearToken': 'Törlés',
|
||||
'settings.ntfyUrl.tokenCleared': 'Hozzáférési token törölve',
|
||||
'settings.notificationPreferences.inapp': 'In-App',
|
||||
'settings.notificationPreferences.webhook': 'Webhook',
|
||||
@@ -1792,16 +1792,19 @@ const hu: Record<string, string | { name: string; category: string }[]> = {
|
||||
'admin.notifications.adminWebhookPanel.testFailed': 'Teszt webhook sikertelen',
|
||||
'admin.notifications.adminWebhookPanel.alwaysOnHint': 'Az admin webhook automatikusan küld, ha URL van beállítva',
|
||||
'admin.notifications.ntfy': 'Ntfy',
|
||||
'admin.ntfy.hint': 'Lehetővé teszi a felhasználóknak, hogy saját ntfy-témáikat konfigurálják push értesítésekhez. Állítsa be az alapértelmezett szervert alább a felhasználói beállítások előre kitöltéséhez.',
|
||||
'admin.notifications.testNtfy': 'Teszt Ntfy küldése',
|
||||
'admin.notifications.testNtfySuccess': 'Teszt Ntfy sikeresen elküldve',
|
||||
'admin.notifications.testNtfyFailed': 'Teszt Ntfy sikertelen',
|
||||
'admin.notifications.adminNtfyPanel.title': 'Admin Ntfy',
|
||||
'admin.notifications.adminNtfyPanel.hint': 'Ez az Ntfy téma kizárólag admin értesítésekhez használatos (pl. verziófrissítési figyelmeztetések). Független a felhasználói témáktól, és mindig küld, ha konfigurálva van.',
|
||||
'admin.notifications.adminNtfyPanel.serverLabel': 'Ntfy szerver URL',
|
||||
'admin.notifications.adminNtfyPanel.serverHint': 'Alapértelmezett szerverként is szolgál a felhasználói ntfy értesítésekhez. Üresen hagyva ntfy.sh-t használ. A felhasználók felülírhatják saját beállításaikban.',
|
||||
'admin.notifications.adminNtfyPanel.serverPlaceholder': 'https://ntfy.sh',
|
||||
'admin.notifications.adminNtfyPanel.topicLabel': 'Admin téma',
|
||||
'admin.notifications.adminNtfyPanel.topicPlaceholder': 'trek-admin-alerts',
|
||||
'admin.notifications.adminNtfyPanel.tokenLabel': 'Hozzáférési token (opcionális)',
|
||||
'admin.notifications.adminNtfyPanel.tokenCleared': 'Admin hozzáférési token törölve',
|
||||
'admin.notifications.adminNtfyPanel.saved': 'Admin Ntfy beállítások mentve',
|
||||
'admin.notifications.adminNtfyPanel.test': 'Teszt Ntfy küldése',
|
||||
'admin.notifications.adminNtfyPanel.testSuccess': 'Teszt Ntfy sikeresen elküldve',
|
||||
|
||||
@@ -4,6 +4,7 @@ const id: Record<string, string | { name: string; category: string }[]> = {
|
||||
'common.showMore': 'Tampilkan lebih banyak',
|
||||
'common.showLess': 'Tampilkan lebih sedikit',
|
||||
'common.cancel': 'Batal',
|
||||
'common.clear': 'Hapus',
|
||||
'common.delete': 'Hapus',
|
||||
'common.edit': 'Sunting',
|
||||
'common.add': 'Tambah',
|
||||
@@ -209,7 +210,6 @@ const id: Record<string, string | { name: string; category: string }[]> = {
|
||||
'settings.ntfyUrl.test': 'Uji',
|
||||
'settings.ntfyUrl.testSuccess': 'Notifikasi uji Ntfy berhasil dikirim',
|
||||
'settings.ntfyUrl.testFailed': 'Notifikasi uji Ntfy gagal',
|
||||
'settings.ntfyUrl.clearToken': 'Hapus',
|
||||
'settings.ntfyUrl.tokenCleared': 'Token akses dihapus',
|
||||
'admin.notifications.title': 'Notifikasi',
|
||||
'admin.notifications.hint': 'Pilih satu saluran notifikasi. Hanya satu yang bisa aktif sekaligus.',
|
||||
@@ -232,16 +232,19 @@ const id: Record<string, string | { name: string; category: string }[]> = {
|
||||
'admin.notifications.adminWebhookPanel.testFailed': 'Test webhook gagal',
|
||||
'admin.notifications.adminWebhookPanel.alwaysOnHint': 'Admin webhook selalu berjalan jika URL dikonfigurasi',
|
||||
'admin.notifications.ntfy': 'Ntfy',
|
||||
'admin.ntfy.hint': 'Memungkinkan pengguna mengonfigurasi topik ntfy mereka sendiri untuk notifikasi push. Tetapkan server default di bawah untuk mengisi setelan pengguna secara otomatis.',
|
||||
'admin.notifications.testNtfy': 'Kirim uji Ntfy',
|
||||
'admin.notifications.testNtfySuccess': 'Uji Ntfy berhasil dikirim',
|
||||
'admin.notifications.testNtfyFailed': 'Uji Ntfy gagal',
|
||||
'admin.notifications.adminNtfyPanel.title': 'Admin Ntfy',
|
||||
'admin.notifications.adminNtfyPanel.hint': 'Topik Ntfy ini digunakan khusus untuk notifikasi admin (mis. peringatan versi). Terpisah dari topik per pengguna dan selalu berjalan jika dikonfigurasi.',
|
||||
'admin.notifications.adminNtfyPanel.serverLabel': 'URL Server Ntfy',
|
||||
'admin.notifications.adminNtfyPanel.serverHint': 'Juga digunakan sebagai server default untuk notifikasi ntfy pengguna. Kosongkan untuk menggunakan ntfy.sh. Pengguna dapat menggantinya di pengaturan mereka sendiri.',
|
||||
'admin.notifications.adminNtfyPanel.serverPlaceholder': 'https://ntfy.sh',
|
||||
'admin.notifications.adminNtfyPanel.topicLabel': 'Topik Admin',
|
||||
'admin.notifications.adminNtfyPanel.topicPlaceholder': 'trek-admin-alerts',
|
||||
'admin.notifications.adminNtfyPanel.tokenLabel': 'Token Akses (opsional)',
|
||||
'admin.notifications.adminNtfyPanel.tokenCleared': 'Token akses admin dihapus',
|
||||
'admin.notifications.adminNtfyPanel.saved': 'Pengaturan Ntfy admin tersimpan',
|
||||
'admin.notifications.adminNtfyPanel.test': 'Kirim uji Ntfy',
|
||||
'admin.notifications.adminNtfyPanel.testSuccess': 'Uji Ntfy berhasil dikirim',
|
||||
|
||||
@@ -4,6 +4,7 @@ const it: Record<string, string | { name: string; category: string }[]> = {
|
||||
'common.showMore': 'Mostra di più',
|
||||
'common.showLess': 'Mostra meno',
|
||||
'common.cancel': 'Annulla',
|
||||
'common.clear': 'Cancella',
|
||||
'common.delete': 'Elimina',
|
||||
'common.edit': 'Modifica',
|
||||
'common.add': 'Aggiungi',
|
||||
@@ -1778,7 +1779,6 @@ const it: Record<string, string | { name: string; category: string }[]> = {
|
||||
'settings.ntfyUrl.test': 'Testa',
|
||||
'settings.ntfyUrl.testSuccess': 'Notifica di test Ntfy inviata con successo',
|
||||
'settings.ntfyUrl.testFailed': 'Notifica di test Ntfy fallita',
|
||||
'settings.ntfyUrl.clearToken': 'Cancella',
|
||||
'settings.ntfyUrl.tokenCleared': 'Token di accesso rimosso',
|
||||
'settings.notificationPreferences.inapp': 'In-App',
|
||||
'settings.notificationPreferences.webhook': 'Webhook',
|
||||
@@ -1795,16 +1795,19 @@ const it: Record<string, string | { name: string; category: string }[]> = {
|
||||
'admin.notifications.adminWebhookPanel.testFailed': 'Invio webhook di test fallito',
|
||||
'admin.notifications.adminWebhookPanel.alwaysOnHint': 'Il webhook admin si attiva automaticamente quando è configurato un URL',
|
||||
'admin.notifications.ntfy': 'Ntfy',
|
||||
'admin.ntfy.hint': 'Consente agli utenti di configurare i propri argomenti ntfy per le notifiche push. Imposta il server predefinito di seguito per precompilare le impostazioni utente.',
|
||||
'admin.notifications.testNtfy': 'Invia Ntfy di test',
|
||||
'admin.notifications.testNtfySuccess': 'Ntfy di test inviato con successo',
|
||||
'admin.notifications.testNtfyFailed': 'Invio Ntfy di test fallito',
|
||||
'admin.notifications.adminNtfyPanel.title': 'Ntfy admin',
|
||||
'admin.notifications.adminNtfyPanel.hint': 'Questo argomento Ntfy viene usato esclusivamente per le notifiche admin (es. avvisi di versione). È separato dagli argomenti per utente e si attiva sempre quando è configurato.',
|
||||
'admin.notifications.adminNtfyPanel.serverLabel': 'URL server Ntfy',
|
||||
'admin.notifications.adminNtfyPanel.serverHint': 'Usato anche come server predefinito per le notifiche ntfy degli utenti. Lasciare vuoto per usare ntfy.sh. Gli utenti possono sovrascriverlo nelle proprie impostazioni.',
|
||||
'admin.notifications.adminNtfyPanel.serverPlaceholder': 'https://ntfy.sh',
|
||||
'admin.notifications.adminNtfyPanel.topicLabel': 'Argomento admin',
|
||||
'admin.notifications.adminNtfyPanel.topicPlaceholder': 'trek-admin-alerts',
|
||||
'admin.notifications.adminNtfyPanel.tokenLabel': 'Token di accesso (opzionale)',
|
||||
'admin.notifications.adminNtfyPanel.tokenCleared': 'Token di accesso admin rimosso',
|
||||
'admin.notifications.adminNtfyPanel.saved': 'Impostazioni Ntfy admin salvate',
|
||||
'admin.notifications.adminNtfyPanel.test': 'Invia Ntfy di test',
|
||||
'admin.notifications.adminNtfyPanel.testSuccess': 'Ntfy di test inviato con successo',
|
||||
|
||||
@@ -4,6 +4,7 @@ const nl: Record<string, string> = {
|
||||
'common.showMore': 'Meer tonen',
|
||||
'common.showLess': 'Minder tonen',
|
||||
'common.cancel': 'Annuleren',
|
||||
'common.clear': 'Wissen',
|
||||
'common.delete': 'Verwijderen',
|
||||
'common.edit': 'Bewerken',
|
||||
'common.add': 'Toevoegen',
|
||||
@@ -1777,7 +1778,6 @@ const nl: Record<string, string> = {
|
||||
'settings.ntfyUrl.test': 'Testen',
|
||||
'settings.ntfyUrl.testSuccess': 'Test-Ntfy-melding succesvol verzonden',
|
||||
'settings.ntfyUrl.testFailed': 'Test-Ntfy-melding mislukt',
|
||||
'settings.ntfyUrl.clearToken': 'Wissen',
|
||||
'settings.ntfyUrl.tokenCleared': 'Toegangstoken gewist',
|
||||
'settings.notificationPreferences.inapp': 'In-App',
|
||||
'settings.notificationPreferences.webhook': 'Webhook',
|
||||
@@ -1794,16 +1794,19 @@ const nl: Record<string, string> = {
|
||||
'admin.notifications.adminWebhookPanel.testFailed': 'Test-webhook mislukt',
|
||||
'admin.notifications.adminWebhookPanel.alwaysOnHint': 'Admin-webhook verstuurt automatisch als er een URL is ingesteld',
|
||||
'admin.notifications.ntfy': 'Ntfy',
|
||||
'admin.ntfy.hint': 'Hiermee kunnen gebruikers hun eigen ntfy-onderwerpen instellen voor pushmeldingen. Stel de standaardserver hieronder in om de gebruikersinstellingen vooraf in te vullen.',
|
||||
'admin.notifications.testNtfy': 'Test-Ntfy verzenden',
|
||||
'admin.notifications.testNtfySuccess': 'Test-Ntfy succesvol verzonden',
|
||||
'admin.notifications.testNtfyFailed': 'Test-Ntfy mislukt',
|
||||
'admin.notifications.adminNtfyPanel.title': 'Admin-Ntfy',
|
||||
'admin.notifications.adminNtfyPanel.hint': 'Dit Ntfy-onderwerp wordt uitsluitend gebruikt voor admin-meldingen (bijv. versie-updates). Het staat los van onderwerpen per gebruiker en verstuurt altijd wanneer het geconfigureerd is.',
|
||||
'admin.notifications.adminNtfyPanel.serverLabel': 'Ntfy-server-URL',
|
||||
'admin.notifications.adminNtfyPanel.serverHint': 'Wordt ook gebruikt als standaardserver voor ntfy-meldingen van gebruikers. Laat leeg om ntfy.sh te gebruiken. Gebruikers kunnen dit aanpassen in hun eigen instellingen.',
|
||||
'admin.notifications.adminNtfyPanel.serverPlaceholder': 'https://ntfy.sh',
|
||||
'admin.notifications.adminNtfyPanel.topicLabel': 'Admin-onderwerp',
|
||||
'admin.notifications.adminNtfyPanel.topicPlaceholder': 'trek-admin-alerts',
|
||||
'admin.notifications.adminNtfyPanel.tokenLabel': 'Toegangstoken (optioneel)',
|
||||
'admin.notifications.adminNtfyPanel.tokenCleared': 'Admin-toegangstoken gewist',
|
||||
'admin.notifications.adminNtfyPanel.saved': 'Admin-Ntfy-instellingen opgeslagen',
|
||||
'admin.notifications.adminNtfyPanel.test': 'Test-Ntfy verzenden',
|
||||
'admin.notifications.adminNtfyPanel.testSuccess': 'Test-Ntfy succesvol verzonden',
|
||||
|
||||
@@ -4,6 +4,7 @@ const pl: Record<string, string | { name: string; category: string }[]> = {
|
||||
'common.showMore': 'Pokaż więcej',
|
||||
'common.showLess': 'Pokaż mniej',
|
||||
'common.cancel': 'Anuluj',
|
||||
'common.clear': 'Wyczyść',
|
||||
'common.delete': 'Usuń',
|
||||
'common.edit': 'Edytuj',
|
||||
'common.add': 'Dodaj',
|
||||
@@ -1597,16 +1598,19 @@ const pl: Record<string, string | { name: string; category: string }[]> = {
|
||||
'admin.notifications.adminWebhookPanel.testFailed': 'Wysyłanie testowego webhooka nie powiodło się',
|
||||
'admin.notifications.adminWebhookPanel.alwaysOnHint': 'Webhook admina wysyła automatycznie, gdy URL jest skonfigurowany',
|
||||
'admin.notifications.ntfy': 'Ntfy',
|
||||
'admin.ntfy.hint': 'Pozwala użytkownikom skonfigurować własne tematy ntfy dla powiadomień push. Ustaw domyślny serwer poniżej, aby wstępnie wypełnić ustawienia użytkownika.',
|
||||
'admin.notifications.testNtfy': 'Wyślij testowe Ntfy',
|
||||
'admin.notifications.testNtfySuccess': 'Testowe Ntfy wysłane pomyślnie',
|
||||
'admin.notifications.testNtfyFailed': 'Wysyłanie testowego Ntfy nie powiodło się',
|
||||
'admin.notifications.adminNtfyPanel.title': 'Admin Ntfy',
|
||||
'admin.notifications.adminNtfyPanel.hint': 'Ten temat Ntfy jest używany wyłącznie do powiadomień admina (np. alertów o wersjach). Jest niezależny od tematów użytkowników i zawsze wysyła po skonfigurowaniu.',
|
||||
'admin.notifications.adminNtfyPanel.serverLabel': 'URL serwera Ntfy',
|
||||
'admin.notifications.adminNtfyPanel.serverHint': 'Używany również jako domyślny serwer dla powiadomień ntfy użytkowników. Pozostaw puste, aby użyć ntfy.sh. Użytkownicy mogą to nadpisać w swoich ustawieniach.',
|
||||
'admin.notifications.adminNtfyPanel.serverPlaceholder': 'https://ntfy.sh',
|
||||
'admin.notifications.adminNtfyPanel.topicLabel': 'Temat admina',
|
||||
'admin.notifications.adminNtfyPanel.topicPlaceholder': 'trek-admin-alerts',
|
||||
'admin.notifications.adminNtfyPanel.tokenLabel': 'Token dostępu (opcjonalne)',
|
||||
'admin.notifications.adminNtfyPanel.tokenCleared': 'Token dostępu admina wyczyszczony',
|
||||
'admin.notifications.adminNtfyPanel.saved': 'Ustawienia admin Ntfy zapisane',
|
||||
'admin.notifications.adminNtfyPanel.test': 'Wyślij testowe Ntfy',
|
||||
'admin.notifications.adminNtfyPanel.testSuccess': 'Testowe Ntfy wysłane pomyślnie',
|
||||
@@ -1634,7 +1638,6 @@ const pl: Record<string, string | { name: string; category: string }[]> = {
|
||||
'settings.ntfyUrl.test': 'Testuj',
|
||||
'settings.ntfyUrl.testSuccess': 'Testowe powiadomienie Ntfy wysłane pomyślnie',
|
||||
'settings.ntfyUrl.testFailed': 'Testowe powiadomienie Ntfy nie powiodło się',
|
||||
'settings.ntfyUrl.clearToken': 'Wyczyść',
|
||||
'settings.ntfyUrl.tokenCleared': 'Token dostępu wyczyszczony',
|
||||
'settings.notificationPreferences.inapp': 'In-App',
|
||||
'settings.notificationPreferences.webhook': 'Webhook',
|
||||
|
||||
@@ -4,6 +4,7 @@ const ru: Record<string, string> = {
|
||||
'common.showMore': 'Показать больше',
|
||||
'common.showLess': 'Показать меньше',
|
||||
'common.cancel': 'Отмена',
|
||||
'common.clear': 'Очистить',
|
||||
'common.delete': 'Удалить',
|
||||
'common.edit': 'Редактировать',
|
||||
'common.add': 'Добавить',
|
||||
@@ -1774,7 +1775,6 @@ const ru: Record<string, string> = {
|
||||
'settings.ntfyUrl.test': 'Тест',
|
||||
'settings.ntfyUrl.testSuccess': 'Тестовое уведомление Ntfy успешно отправлено',
|
||||
'settings.ntfyUrl.testFailed': 'Ошибка отправки тестового уведомления Ntfy',
|
||||
'settings.ntfyUrl.clearToken': 'Очистить',
|
||||
'settings.ntfyUrl.tokenCleared': 'Токен доступа очищен',
|
||||
'settings.notificationPreferences.inapp': 'In-App',
|
||||
'settings.notificationPreferences.webhook': 'Webhook',
|
||||
@@ -1791,16 +1791,19 @@ const ru: Record<string, string> = {
|
||||
'admin.notifications.adminWebhookPanel.testFailed': 'Ошибка тестового вебхука',
|
||||
'admin.notifications.adminWebhookPanel.alwaysOnHint': 'Вебхук администратора отправляется автоматически при наличии URL',
|
||||
'admin.notifications.ntfy': 'Ntfy',
|
||||
'admin.ntfy.hint': 'Позволяет пользователям настраивать собственные темы ntfy для push-уведомлений. Установите сервер по умолчанию ниже, чтобы предварительно заполнить настройки пользователей.',
|
||||
'admin.notifications.testNtfy': 'Отправить тестовое Ntfy',
|
||||
'admin.notifications.testNtfySuccess': 'Тестовое Ntfy успешно отправлено',
|
||||
'admin.notifications.testNtfyFailed': 'Ошибка отправки тестового Ntfy',
|
||||
'admin.notifications.adminNtfyPanel.title': 'Ntfy администратора',
|
||||
'admin.notifications.adminNtfyPanel.hint': 'Эта тема Ntfy используется исключительно для уведомлений администратора (например, оповещения о версиях). Она независима от тем пользователей и всегда отправляется при наличии настройки.',
|
||||
'admin.notifications.adminNtfyPanel.serverLabel': 'URL сервера Ntfy',
|
||||
'admin.notifications.adminNtfyPanel.serverHint': 'Также используется как сервер по умолчанию для ntfy-уведомлений пользователей. Оставьте пустым, чтобы использовать ntfy.sh. Пользователи могут изменить это в своих настройках.',
|
||||
'admin.notifications.adminNtfyPanel.serverPlaceholder': 'https://ntfy.sh',
|
||||
'admin.notifications.adminNtfyPanel.topicLabel': 'Тема администратора',
|
||||
'admin.notifications.adminNtfyPanel.topicPlaceholder': 'trek-admin-alerts',
|
||||
'admin.notifications.adminNtfyPanel.tokenLabel': 'Токен доступа (необязательно)',
|
||||
'admin.notifications.adminNtfyPanel.tokenCleared': 'Токен доступа администратора очищен',
|
||||
'admin.notifications.adminNtfyPanel.saved': 'Настройки Ntfy администратора сохранены',
|
||||
'admin.notifications.adminNtfyPanel.test': 'Отправить тестовое Ntfy',
|
||||
'admin.notifications.adminNtfyPanel.testSuccess': 'Тестовое Ntfy успешно отправлено',
|
||||
|
||||
@@ -4,6 +4,7 @@ const zh: Record<string, string> = {
|
||||
'common.showMore': '显示更多',
|
||||
'common.showLess': '收起',
|
||||
'common.cancel': '取消',
|
||||
'common.clear': '清除',
|
||||
'common.delete': '删除',
|
||||
'common.edit': '编辑',
|
||||
'common.add': '添加',
|
||||
@@ -1774,7 +1775,6 @@ const zh: Record<string, string> = {
|
||||
'settings.ntfyUrl.test': '测试',
|
||||
'settings.ntfyUrl.testSuccess': '测试 Ntfy 通知发送成功',
|
||||
'settings.ntfyUrl.testFailed': '测试 Ntfy 通知失败',
|
||||
'settings.ntfyUrl.clearToken': '清除',
|
||||
'settings.ntfyUrl.tokenCleared': '访问令牌已清除',
|
||||
'settings.notificationPreferences.inapp': 'In-App',
|
||||
'settings.notificationPreferences.webhook': 'Webhook',
|
||||
@@ -1791,16 +1791,19 @@ const zh: Record<string, string> = {
|
||||
'admin.notifications.adminWebhookPanel.testFailed': '测试 Webhook 失败',
|
||||
'admin.notifications.adminWebhookPanel.alwaysOnHint': '配置 URL 后管理员 Webhook 自动触发',
|
||||
'admin.notifications.ntfy': 'Ntfy',
|
||||
'admin.ntfy.hint': '允许用户配置自己的 ntfy 主题以接收推送通知。在下方设置默认服务器以预填充用户设置。',
|
||||
'admin.notifications.testNtfy': '发送测试 Ntfy',
|
||||
'admin.notifications.testNtfySuccess': '测试 Ntfy 发送成功',
|
||||
'admin.notifications.testNtfyFailed': '测试 Ntfy 失败',
|
||||
'admin.notifications.adminNtfyPanel.title': '管理员 Ntfy',
|
||||
'admin.notifications.adminNtfyPanel.hint': '此 Ntfy 主题专用于管理员通知(如版本更新提醒)。它与每用户主题相互独立,配置后始终触发。',
|
||||
'admin.notifications.adminNtfyPanel.serverLabel': 'Ntfy 服务器 URL',
|
||||
'admin.notifications.adminNtfyPanel.serverHint': '同时用作用户 ntfy 通知的默认服务器。留空则默认使用 ntfy.sh。用户可在其自己的设置中覆盖此项。',
|
||||
'admin.notifications.adminNtfyPanel.serverPlaceholder': 'https://ntfy.sh',
|
||||
'admin.notifications.adminNtfyPanel.topicLabel': '管理员主题',
|
||||
'admin.notifications.adminNtfyPanel.topicPlaceholder': 'trek-admin-alerts',
|
||||
'admin.notifications.adminNtfyPanel.tokenLabel': '访问令牌(可选)',
|
||||
'admin.notifications.adminNtfyPanel.tokenCleared': '管理员访问令牌已清除',
|
||||
'admin.notifications.adminNtfyPanel.saved': '管理员 Ntfy 设置已保存',
|
||||
'admin.notifications.adminNtfyPanel.test': '发送测试 Ntfy',
|
||||
'admin.notifications.adminNtfyPanel.testSuccess': '测试 Ntfy 发送成功',
|
||||
|
||||
@@ -4,6 +4,7 @@ const zhTw: Record<string, string> = {
|
||||
'common.showMore': '顯示更多',
|
||||
'common.showLess': '收起',
|
||||
'common.cancel': '取消',
|
||||
'common.clear': '清除',
|
||||
'common.delete': '刪除',
|
||||
'common.edit': '編輯',
|
||||
'common.add': '新增',
|
||||
@@ -206,7 +207,6 @@ const zhTw: Record<string, string> = {
|
||||
'settings.ntfyUrl.test': '測試',
|
||||
'settings.ntfyUrl.testSuccess': '測試 Ntfy 通知傳送成功',
|
||||
'settings.ntfyUrl.testFailed': '測試 Ntfy 通知失敗',
|
||||
'settings.ntfyUrl.clearToken': '清除',
|
||||
'settings.ntfyUrl.tokenCleared': '存取權杖已清除',
|
||||
'settings.notificationsDisabled': '通知尚未配置。請聯絡管理員啟用電子郵件或 Webhook 通知。',
|
||||
'settings.notificationsActive': '活躍頻道',
|
||||
@@ -232,16 +232,19 @@ const zhTw: Record<string, string> = {
|
||||
'admin.notifications.adminWebhookPanel.testFailed': '測試 Webhook 傳送失敗',
|
||||
'admin.notifications.adminWebhookPanel.alwaysOnHint': '配置 URL 後,管理員 Webhook 始終觸發',
|
||||
'admin.notifications.ntfy': 'Ntfy',
|
||||
'admin.ntfy.hint': '允許使用者設定自己的 ntfy 主題以接收推播通知。在下方設定預設伺服器以預先填入使用者設定。',
|
||||
'admin.notifications.testNtfy': '傳送測試 Ntfy',
|
||||
'admin.notifications.testNtfySuccess': '測試 Ntfy 傳送成功',
|
||||
'admin.notifications.testNtfyFailed': '測試 Ntfy 失敗',
|
||||
'admin.notifications.adminNtfyPanel.title': '管理員 Ntfy',
|
||||
'admin.notifications.adminNtfyPanel.hint': '此 Ntfy 主題專用於管理員通知(例如版本提醒)。它與每位使用者的主題分開,設定後始終會觸發。',
|
||||
'admin.notifications.adminNtfyPanel.serverLabel': 'Ntfy 伺服器 URL',
|
||||
'admin.notifications.adminNtfyPanel.serverHint': '同時用作使用者 ntfy 通知的預設伺服器。留空則預設使用 ntfy.sh。使用者可在自己的設定中覆寫此項。',
|
||||
'admin.notifications.adminNtfyPanel.serverPlaceholder': 'https://ntfy.sh',
|
||||
'admin.notifications.adminNtfyPanel.topicLabel': '管理員主題',
|
||||
'admin.notifications.adminNtfyPanel.topicPlaceholder': 'trek-admin-alerts',
|
||||
'admin.notifications.adminNtfyPanel.tokenLabel': '存取權杖(選填)',
|
||||
'admin.notifications.adminNtfyPanel.tokenCleared': '管理員存取權杖已清除',
|
||||
'admin.notifications.adminNtfyPanel.saved': '管理員 Ntfy 設定已儲存',
|
||||
'admin.notifications.adminNtfyPanel.test': '傳送測試 Ntfy',
|
||||
'admin.notifications.adminNtfyPanel.testSuccess': '測試 Ntfy 傳送成功',
|
||||
|
||||
@@ -1396,6 +1396,7 @@ export default function AdminPage(): React.ReactElement {
|
||||
placeholder={t('admin.notifications.adminNtfyPanel.serverPlaceholder')}
|
||||
className="w-full px-3 py-2 border border-slate-300 rounded-lg text-sm focus:ring-2 focus:ring-slate-400 focus:border-transparent"
|
||||
/>
|
||||
<p className="text-xs text-slate-400 mt-1">{t('admin.notifications.adminNtfyPanel.serverHint')}</p>
|
||||
</div>
|
||||
<div>
|
||||
<label className="block text-xs font-medium text-slate-500 mb-1">{t('admin.notifications.adminNtfyPanel.topicLabel')}</label>
|
||||
@@ -1409,13 +1410,29 @@ export default function AdminPage(): React.ReactElement {
|
||||
</div>
|
||||
<div>
|
||||
<label className="block text-xs font-medium text-slate-500 mb-1">{t('admin.notifications.adminNtfyPanel.tokenLabel')}</label>
|
||||
<input
|
||||
type="password"
|
||||
value={smtpValues.admin_ntfy_token === '••••••••' ? '' : smtpValues.admin_ntfy_token || ''}
|
||||
onChange={e => setSmtpValues(prev => ({ ...prev, admin_ntfy_token: e.target.value }))}
|
||||
placeholder={smtpValues.admin_ntfy_token === '••••••••' ? '••••••••' : ''}
|
||||
className="w-full px-3 py-2 border border-slate-300 rounded-lg text-sm focus:ring-2 focus:ring-slate-400 focus:border-transparent"
|
||||
/>
|
||||
<div className="flex gap-2">
|
||||
<input
|
||||
type="password"
|
||||
value={smtpValues.admin_ntfy_token === '••••••••' ? '' : smtpValues.admin_ntfy_token || ''}
|
||||
onChange={e => setSmtpValues(prev => ({ ...prev, admin_ntfy_token: e.target.value }))}
|
||||
placeholder={smtpValues.admin_ntfy_token === '••••••••' ? '••••••••' : ''}
|
||||
className="flex-1 px-3 py-2 border border-slate-300 rounded-lg text-sm focus:ring-2 focus:ring-slate-400 focus:border-transparent"
|
||||
/>
|
||||
{smtpValues.admin_ntfy_token === '••••••••' && (
|
||||
<button
|
||||
onClick={async () => {
|
||||
try {
|
||||
await authApi.updateAppSettings({ admin_ntfy_token: '' })
|
||||
setSmtpValues(prev => ({ ...prev, admin_ntfy_token: '' }))
|
||||
toast.success(t('admin.notifications.adminNtfyPanel.tokenCleared'))
|
||||
} catch { toast.error(t('common.error')) }
|
||||
}}
|
||||
className="px-3 py-2 border border-red-300 text-red-600 rounded-lg text-sm font-medium hover:bg-red-50 transition-colors"
|
||||
>
|
||||
{t('common.clear')}
|
||||
</button>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
|
||||
@@ -241,9 +241,10 @@ export async function streamImmichAsset(
|
||||
const creds = getImmichCredentials(effectiveUserId);
|
||||
if (!creds) return { error: 'Not found', status: 404 };
|
||||
|
||||
const path = kind === 'thumbnail' ? 'thumbnail' : 'original';
|
||||
const timeout = kind === 'thumbnail' ? 10000 : 30000;
|
||||
const url = `${creds.immich_url}/api/assets/${assetId}/${path}`;
|
||||
const url = kind === 'thumbnail'
|
||||
? `${creds.immich_url}/api/assets/${assetId}/thumbnail?size=thumbnail`
|
||||
: `${creds.immich_url}/api/assets/${assetId}/thumbnail?size=fullsize`;
|
||||
|
||||
response.set('Cache-Control', 'public, max-age=86400');
|
||||
await pipeAsset(url, response, { 'x-api-key': creds.immich_api_key }, AbortSignal.timeout(timeout));
|
||||
|
||||
@@ -89,6 +89,7 @@ export interface PreferencesMatrix {
|
||||
available_channels: AvailableChannels;
|
||||
event_types: NotifEventType[];
|
||||
implemented_combos: Record<NotifEventType, NotifChannel[]>;
|
||||
defaults?: { ntfyServer: string | null };
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -152,6 +153,7 @@ export function getPreferencesMatrix(userId: number, userRole: string, scope: 'u
|
||||
available_channels,
|
||||
event_types,
|
||||
implemented_combos: IMPLEMENTED_COMBOS,
|
||||
...(scope === 'user' && { defaults: { ntfyServer: getAppSetting('admin_ntfy_server') || null } }),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -407,7 +407,7 @@ describe('Immich asset proxy', () => {
|
||||
.set('Cookie', authCookie(member.id));
|
||||
|
||||
expect(res.status).toBe(200);
|
||||
expect(res.headers['content-type']).toContain('image/jpeg');
|
||||
expect(res.headers['content-type']).toContain('image/');
|
||||
});
|
||||
|
||||
it('IMMICH-057 — GET /assets/info where trip does not exist returns 403', async () => {
|
||||
|
||||
Reference in New Issue
Block a user