mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-04-01 04:53:40 +00:00
Fix/fe bugs 3 (#2943)
* fix typeo in patch db seed * show all registries in updates tab, fix required dependnecy display in marketplace, update browser tab title desc * always show pointer for version select * chore: fix comments * support html in action desc and marketplace long desc, only show qr in action res if qr is true * disable save if smtp creds not edited, show better smtp success message * dont dismiss login spinner until patchDB returns * feat: redesign of service dashboard and interface (#2946) * feat: redesign of service dashboard and interface * chore: comments * re-add setup complete * dibale launch UI when not running, re-style things, rename things * back to 1000 * fix clearnet docs link and require password retype in setup wiz * faster hint display * display dependency ID if title not available * fix migration * better init progress view * fix setup success page by providing VERSION and notifications page fixes * force uninstall from service error page, soft or hard * handle error state better * chore: fixed for install and setup wizards * chore: fix issues (#2949) * enable and disable kiosk mode * minor fixes * fix dependency mounts * dismissable tasks * provide replayId * default if health check success message is null * look for wifi interface too * dash for null user agent in sessions * add disk repair to diagnostic api --------- Co-authored-by: waterplea <alexander@inkin.ru> Co-authored-by: Aiden McClelland <me@drbonez.dev>
This commit is contained in:
@@ -12,7 +12,7 @@ import { i18nPipe } from '../i18n/i18n.pipe'
|
||||
<h1 [style.font-size.rem]="2" [style.margin-bottom.rem]="2">
|
||||
{{ 'Setting up your server' | i18n }}
|
||||
</h1>
|
||||
<div *ngIf="progress.total">
|
||||
<div>
|
||||
{{ 'Progress' | i18n }}: {{ (progress.total * 100).toFixed(0) }}%
|
||||
</div>
|
||||
<progress
|
||||
@@ -21,7 +21,7 @@ import { i18nPipe } from '../i18n/i18n.pipe'
|
||||
[style.margin]="'1rem auto'"
|
||||
[attr.value]="progress.total"
|
||||
></progress>
|
||||
<p [innerHTML]="progress.message"></p>
|
||||
<p [innerHTML]="progress.message || 'Finished'"></p>
|
||||
</section>
|
||||
<logs-window />
|
||||
`,
|
||||
|
||||
@@ -21,7 +21,6 @@ import {
|
||||
&:hover {
|
||||
text-indent: var(--indent, 0);
|
||||
text-overflow: clip;
|
||||
cursor: default;
|
||||
}
|
||||
}
|
||||
`,
|
||||
|
||||
@@ -6,7 +6,6 @@ import {
|
||||
input,
|
||||
} from '@angular/core'
|
||||
|
||||
const HOST = 'https://staging.docs.start9.com'
|
||||
export const VERSION = new InjectionToken<string>('VERSION')
|
||||
|
||||
@Directive({
|
||||
@@ -26,6 +25,6 @@ export class DocsLinkDirective {
|
||||
protected readonly url = computed(() => {
|
||||
const path = this.href()
|
||||
const relative = path.startsWith('/') ? path : `/${path}`
|
||||
return `${HOST}${relative}?os=${this.version}`
|
||||
return `https://docs.start9.com${relative}?os=${this.version}`
|
||||
})
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ export default {
|
||||
57: 'Herunterfahren wird eingeleitet',
|
||||
58: 'Hinzufügen',
|
||||
59: 'Ok',
|
||||
60: 'Möchten Sie diesen Eintrag wirklich löschen?',
|
||||
60: 'französisch',
|
||||
61: 'Dieser Wert kann nach dem Festlegen nicht geändert werden',
|
||||
62: 'Fortfahren',
|
||||
63: 'Klicken oder Datei hierher ziehen',
|
||||
@@ -85,7 +85,7 @@ export default {
|
||||
82: 'Metriken',
|
||||
83: 'Protokolle',
|
||||
84: 'Benachrichtigungen',
|
||||
85: 'UI starten',
|
||||
85: 'Hartes Deinstallieren',
|
||||
86: 'QR-Code anzeigen',
|
||||
87: 'URL kopieren',
|
||||
88: 'Aktionen',
|
||||
@@ -230,9 +230,9 @@ export default {
|
||||
227: 'Unbekannter Fehler',
|
||||
228: 'Fehler',
|
||||
229: '"Container neu bauen" ist eine harmlose Aktion, die nur wenige Sekunden dauert. Sie wird dieses Problem wahrscheinlich beheben.',
|
||||
230: '"Dienst deinstallieren" ist eine gefährliche Aktion, die den Dienst aus StartOS entfernt und alle zugehörigen Daten dauerhaft löscht.',
|
||||
230: '"Hartes Deinstallieren" ist eine gefährliche Aktion, die den Dienst aus StartOS entfernt und alle zugehörigen Daten dauerhaft löscht.',
|
||||
231: 'Container neu bauen',
|
||||
232: 'Dienst deinstallieren',
|
||||
232: 'Weiches Deinstallieren',
|
||||
233: 'Vollständige Nachricht anzeigen',
|
||||
234: 'Dienstfehler',
|
||||
235: 'Warte auf Ergebnis',
|
||||
@@ -247,7 +247,6 @@ export default {
|
||||
244: 'Hosting',
|
||||
245: 'Installation läuft',
|
||||
246: 'Siehe unten',
|
||||
247: 'Steuerelemente',
|
||||
248: 'Keine Dienste installiert',
|
||||
249: 'Läuft',
|
||||
250: 'Gestoppt',
|
||||
@@ -414,12 +413,12 @@ export default {
|
||||
411: 'Weitere Netzwerke',
|
||||
412: 'WiFi ist deaktiviert',
|
||||
413: 'Keine drahtlose Schnittstelle erkannt',
|
||||
414: 'WiFi wird aktiviert',
|
||||
415: 'WiFi wird deaktiviert',
|
||||
414: 'wird aktiviert',
|
||||
415: 'wird deaktiviert',
|
||||
416: 'Verbindung wird hergestellt. Dies kann einen Moment dauern',
|
||||
417: 'Erneut versuchen',
|
||||
418: 'Mehr anzeigen',
|
||||
419: 'Versionshinweise',
|
||||
419: 'Details anzeigen',
|
||||
420: 'Eintrag anzeigen',
|
||||
421: 'Dienste, die von folgendem abhängen:',
|
||||
422: 'werden nicht mehr ordnungsgemäß funktionieren und könnten abstürzen.',
|
||||
@@ -503,5 +502,20 @@ export default {
|
||||
500: 'Marktplatz anzeigen',
|
||||
501: 'Willkommen bei',
|
||||
502: 'souveränes computing',
|
||||
503: 'französisch',
|
||||
503: 'Passen Sie den Namen an, der in Ihrem Browser-Tab erscheint',
|
||||
504: 'Verwalten',
|
||||
505: 'Möchten Sie diese Adresse wirklich löschen?',
|
||||
506: '"Weiches Deinstallieren" entfernt den Dienst aus StartOS, behält jedoch die Daten bei.',
|
||||
507: 'Keine gespeicherten Anbieter',
|
||||
508: 'Kiosk-Modus',
|
||||
509: 'Aktiviert',
|
||||
510: 'Deaktiviere den Kiosk-Modus, es sei denn, du musst einen Monitor anschließen',
|
||||
511: 'Aktiviere den Kiosk-Modus, wenn du einen Monitor anschließen musst',
|
||||
512: 'Der Kiosk-Modus ist auf diesem Gerät nicht verfügbar',
|
||||
513: 'Aktivieren',
|
||||
514: 'Deaktivieren',
|
||||
515: 'Du verwendest derzeit einen Kiosk. Wenn du den Kiosk-Modus deaktivierst, wird die Verbindung zum Kiosk getrennt.',
|
||||
516: 'Empfohlen',
|
||||
517: 'Möchten Sie diese Aufgabe wirklich verwerfen?',
|
||||
518: 'Verwerfen',
|
||||
} satisfies i18n
|
||||
|
||||
@@ -44,7 +44,7 @@ export const ENGLISH = {
|
||||
'Beginning restart': 42,
|
||||
'You are on the latest version of StartOS.': 43,
|
||||
'Up to date!': 44,
|
||||
'Release Notes': 45,
|
||||
'Release notes': 45,
|
||||
'Begin Update': 46,
|
||||
'Beginning update': 47,
|
||||
'You are currently connected over Tor. If you reset the Tor daemon, you will lose connectivity until it comes back online.': 48,
|
||||
@@ -59,7 +59,7 @@ export const ENGLISH = {
|
||||
'Beginning shutdown': 57,
|
||||
'Add': 58,
|
||||
'Ok': 59,
|
||||
'Are you sure you want to delete this entry?': 60,
|
||||
'french': 60,
|
||||
'This value cannot be changed once set': 61,
|
||||
'Continue': 62,
|
||||
'Click or drop file here': 63,
|
||||
@@ -84,7 +84,7 @@ export const ENGLISH = {
|
||||
'Metrics': 82, // system info such as CPU, RAM, and storage usage
|
||||
'Logs': 83, // as in, application logs
|
||||
'Notifications': 84,
|
||||
'Launch UI': 85,
|
||||
'Hard uninstall': 85, // as in, hard reset or hard reboot, except for uninstalling
|
||||
'Show QR': 86,
|
||||
'Copy URL': 87,
|
||||
'Actions': 88, // as in, actions available to the user
|
||||
@@ -229,9 +229,9 @@ export const ENGLISH = {
|
||||
'Unknown error': 227,
|
||||
'Error': 228,
|
||||
'"Rebuild container" is a harmless action that and only takes a few seconds to complete. It will likely resolve this issue.': 229,
|
||||
'"Uninstall service" is a dangerous action that will remove the service from StartOS and wipe all its data.': 230,
|
||||
'"Hard uninstall" is a dangerous action that will remove the service from StartOS and wipe all its data.': 230,
|
||||
'Rebuild container': 231,
|
||||
'Uninstall service': 232,
|
||||
'Soft uninstall': 232, // as in, uninstall the service but preserve its data
|
||||
'View full message': 233,
|
||||
'Service error': 234,
|
||||
'Awaiting result': 235,
|
||||
@@ -246,7 +246,6 @@ export const ENGLISH = {
|
||||
'Hosting': 244,
|
||||
'Installing': 245,
|
||||
'See below': 246,
|
||||
'Controls': 247,
|
||||
'No services installed': 248,
|
||||
'Running': 249,
|
||||
'Stopped': 250,
|
||||
@@ -413,12 +412,12 @@ export const ENGLISH = {
|
||||
'Other Networks': 411,
|
||||
'WiFi is disabled': 412,
|
||||
'No wireless interface detected': 413,
|
||||
'Enabling WiFi': 414,
|
||||
'Disabling WiFi': 415,
|
||||
'Enabling': 414,
|
||||
'Disabling': 415,
|
||||
'Connecting. This could take a while': 416,
|
||||
'Retry': 417,
|
||||
'Show more': 418,
|
||||
'Release notes': 419,
|
||||
'View details': 419,
|
||||
'View listing': 420,
|
||||
'Services that depend on': 421,
|
||||
'will no longer work properly and may crash.': 422,
|
||||
@@ -502,5 +501,20 @@ export const ENGLISH = {
|
||||
'View Marketplace': 500,
|
||||
'Welcome to': 501,
|
||||
'sovereign computing': 502,
|
||||
'french': 503,
|
||||
'Customize the name appearing in your browser tab': 503,
|
||||
'Manage': 504, // as in, administer
|
||||
'Are you sure you want to delete this address?': 505, // this address referes to a domain or URL
|
||||
'"Soft uninstall" will remove the service from StartOS but preserve its data.': 506,
|
||||
'No saved providers': 507,
|
||||
'Kiosk Mode': 508, // an OS mode that permits attaching a monitor to the computer
|
||||
'Enabled': 509,
|
||||
'Disable Kiosk Mode unless you need to attach a monitor': 510,
|
||||
'Enable Kiosk Mode if you need to attach a monitor': 511,
|
||||
'Kiosk Mode is unavailable on this device': 512,
|
||||
'Enable': 513,
|
||||
'Disable': 514,
|
||||
'You are currently using a kiosk. Disabling Kiosk Mode will result in the kiosk disconnecting.': 515,
|
||||
'Recommended': 516, // as in, we recommend this
|
||||
'Are you sure you want to dismiss this task?': 517,
|
||||
'Dismiss': 518, // as in, dismiss or delete a task
|
||||
} as const
|
||||
|
||||
@@ -45,7 +45,7 @@ export default {
|
||||
42: 'Iniciando reinicio',
|
||||
43: 'Estás usando la última versión de StartOS.',
|
||||
44: '¡Actualizado!',
|
||||
45: 'Notas de la versión',
|
||||
45: 'notas de la versión',
|
||||
46: 'Iniciar actualización',
|
||||
47: 'Iniciando actualización',
|
||||
48: 'Actualmente estás conectado a través de Tor. Si restableces el servicio Tor, perderás la conexión hasta que vuelva a estar en línea.',
|
||||
@@ -60,7 +60,7 @@ export default {
|
||||
57: 'Iniciando apagado',
|
||||
58: 'Agregar',
|
||||
59: 'Ok',
|
||||
60: '¿Estás seguro de que deseas eliminar esta entrada?',
|
||||
60: 'francés',
|
||||
61: 'Este valor no se puede cambiar una vez establecido',
|
||||
62: 'Continuar',
|
||||
63: 'Haz clic o suelta el archivo aquí',
|
||||
@@ -85,7 +85,7 @@ export default {
|
||||
82: 'Métricas',
|
||||
83: 'Registros',
|
||||
84: 'Notificaciones',
|
||||
85: 'Abrir interfaz',
|
||||
85: 'Desinstalación forzada',
|
||||
86: 'Mostrar QR',
|
||||
87: 'Copiar URL',
|
||||
88: 'Acciones',
|
||||
@@ -230,9 +230,9 @@ export default {
|
||||
227: 'Error desconocido',
|
||||
228: 'Error',
|
||||
229: '"Reconstruir contenedor" es una acción inofensiva que solo toma unos segundos. Probablemente resolverá este problema.',
|
||||
230: '"Desinstalar servicio" es una acción peligrosa que eliminará el servicio de StartOS y borrará todos sus datos.',
|
||||
230: '"Desinstalación forzada" es una acción peligrosa que eliminará el servicio de StartOS y borrará todos sus datos.',
|
||||
231: 'Reconstruir contenedor',
|
||||
232: 'Desinstalar servicio',
|
||||
232: 'Desinstalación suave',
|
||||
233: 'Ver mensaje completo',
|
||||
234: 'Error del servicio',
|
||||
235: 'Esperando resultado',
|
||||
@@ -247,7 +247,6 @@ export default {
|
||||
244: 'Alojamiento',
|
||||
245: 'Instalando',
|
||||
246: 'Ver abajo',
|
||||
247: 'Controles',
|
||||
248: 'No hay servicios instalados',
|
||||
249: 'En ejecución',
|
||||
250: 'Detenido',
|
||||
@@ -414,12 +413,12 @@ export default {
|
||||
411: 'Otras redes',
|
||||
412: 'WiFi está deshabilitado',
|
||||
413: 'No se detectó interfaz inalámbrica',
|
||||
414: 'Habilitando WiFi',
|
||||
415: 'Deshabilitando WiFi',
|
||||
414: 'Habilitando',
|
||||
415: 'Deshabilitando',
|
||||
416: 'Conectando. Esto podría tardar un poco',
|
||||
417: 'Reintentar',
|
||||
418: 'Mostrar más',
|
||||
419: 'Notas de la versión',
|
||||
419: 'Ver detalles',
|
||||
420: 'Ver listado',
|
||||
421: 'Servicios que dependen de',
|
||||
422: 'ya no funcionarán correctamente y podrían fallar.',
|
||||
@@ -503,5 +502,20 @@ export default {
|
||||
500: 'Ver Marketplace',
|
||||
501: 'Bienvenido a',
|
||||
502: 'computación soberana',
|
||||
503: 'francés',
|
||||
503: 'Personaliza el nombre que aparece en la pestaña de tu navegador',
|
||||
504: 'Administrar',
|
||||
505: '¿Estás seguro de que deseas eliminar esta dirección?',
|
||||
506: '"Desinstalación suave" eliminará el servicio de StartOS pero conservará sus datos.',
|
||||
507: 'No hay proveedores guardados',
|
||||
508: 'Modo quiosco',
|
||||
509: 'Activado',
|
||||
510: 'Desactiva el modo quiosco a menos que necesites conectar un monitor',
|
||||
511: 'Activa el modo quiosco si necesitas conectar un monitor',
|
||||
512: 'El modo quiosco no está disponible en este dispositivo',
|
||||
513: 'Activar',
|
||||
514: 'Desactivar',
|
||||
515: 'Actualmente estás utilizando un quiosco. Desactivar el modo quiosco provocará su desconexión.',
|
||||
516: 'Recomendado',
|
||||
517: '¿Estás seguro de que deseas descartar esta tarea?',
|
||||
518: 'Descartar',
|
||||
} satisfies i18n
|
||||
|
||||
@@ -60,7 +60,7 @@ export default {
|
||||
57: 'Arrêt initié',
|
||||
58: 'Ajouter',
|
||||
59: 'OK',
|
||||
60: 'Voulez-vous vraiment supprimer cette entrée ?',
|
||||
60: 'français',
|
||||
61: 'Cette valeur ne peut plus être modifiée une fois définie',
|
||||
62: 'Continuer',
|
||||
63: 'Cliquez ou déposez le fichier ici',
|
||||
@@ -85,7 +85,7 @@ export default {
|
||||
82: 'Métriques',
|
||||
83: 'Journaux',
|
||||
84: 'Notifications',
|
||||
85: 'Lancer l’interface utilisateur',
|
||||
85: 'Désinstallation forcée',
|
||||
86: 'Afficher le QR',
|
||||
87: 'Copier l’URL',
|
||||
88: 'Actions',
|
||||
@@ -230,9 +230,9 @@ export default {
|
||||
227: 'Erreur inconnue',
|
||||
228: 'Erreur',
|
||||
229: '« Reconstruire le conteneur » est une action sans risque qui ne prend que quelques secondes. Cela résoudra probablement ce problème.',
|
||||
230: '« Désinstaller le service » est une action risquée qui supprimera le service de StartOS et effacera toutes ses données.',
|
||||
230: '« Désinstallation forcée » est une action risquée qui supprimera le service de StartOS et effacera toutes ses données.',
|
||||
231: 'Reconstruire le conteneur',
|
||||
232: 'Désinstaller le service',
|
||||
232: 'Désinstallation douce',
|
||||
233: 'Voir le message complet',
|
||||
234: 'Erreur du service',
|
||||
235: 'En attente du résultat',
|
||||
@@ -247,7 +247,6 @@ export default {
|
||||
244: 'Hébergement',
|
||||
245: 'Installation',
|
||||
246: 'Voir ci-dessous',
|
||||
247: 'Contrôles',
|
||||
248: 'Aucun service installé',
|
||||
249: 'En fonctionnement',
|
||||
250: 'Arrêté',
|
||||
@@ -414,12 +413,12 @@ export default {
|
||||
411: 'Autres réseaux',
|
||||
412: 'Le WiFi est désactivé',
|
||||
413: 'Aucune interface sans fil détectée',
|
||||
414: 'Activation du WiFi',
|
||||
415: 'Désactivation du WiFi',
|
||||
414: 'Activation',
|
||||
415: 'Désactivation',
|
||||
416: 'Connexion en cours. Cela peut prendre un certain temps',
|
||||
417: 'Réessayer',
|
||||
418: 'Afficher plus',
|
||||
419: 'Notes de version',
|
||||
419: 'Voir les détails',
|
||||
420: 'Voir la fiche',
|
||||
421: 'Services dépendants de',
|
||||
422: 'ne fonctionneront plus correctement et pourraient planter.',
|
||||
@@ -503,5 +502,20 @@ export default {
|
||||
500: 'Voir la bibliothèque de services',
|
||||
501: 'Bienvenue sur',
|
||||
502: 'informatique souveraine',
|
||||
503: 'français',
|
||||
503: 'Personnalisez le nom qui apparaît dans l’onglet de votre navigateur',
|
||||
504: 'Gérer',
|
||||
505: 'Êtes-vous sûr de vouloir supprimer cette adresse ?',
|
||||
506: '« Désinstallation douce » supprimera le service de StartOS tout en conservant ses données.',
|
||||
507: 'Aucun fournisseur enregistré',
|
||||
508: 'Mode kiosque',
|
||||
509: 'Activé',
|
||||
510: 'Désactivez le mode kiosque sauf si vous devez connecter un moniteur',
|
||||
511: 'Activez le mode kiosque si vous devez connecter un moniteur',
|
||||
512: 'Le mode kiosque n’est pas disponible sur cet appareil',
|
||||
513: 'Activer',
|
||||
514: 'Désactiver',
|
||||
515: 'Vous utilisez actuellement un kiosque. Désactiver le mode kiosque entraînera sa déconnexion.',
|
||||
516: 'Recommandé',
|
||||
517: 'Êtes-vous sûr de vouloir ignorer cette tâche ?',
|
||||
518: 'Ignorer',
|
||||
} satisfies i18n
|
||||
|
||||
@@ -60,7 +60,7 @@ export default {
|
||||
57: 'Rozpoczynanie wyłączania',
|
||||
58: 'Dodaj',
|
||||
59: 'OK',
|
||||
60: 'Czy na pewno chcesz usunąć ten wpis?',
|
||||
60: 'francuski',
|
||||
61: 'Ta wartość nie może być zmieniona po jej ustawieniu',
|
||||
62: 'Kontynuuj',
|
||||
63: 'Kliknij lub upuść plik tutaj',
|
||||
@@ -85,7 +85,7 @@ export default {
|
||||
82: 'Monitorowanie',
|
||||
83: 'Logi',
|
||||
84: 'Powiadomienia',
|
||||
85: 'Uruchom interfejs',
|
||||
85: 'Twarde odinstalowanie',
|
||||
86: 'Pokaż kod QR',
|
||||
87: 'Kopiuj URL',
|
||||
88: 'Akcje',
|
||||
@@ -230,9 +230,9 @@ export default {
|
||||
227: 'Nieznany błąd',
|
||||
228: 'Błąd',
|
||||
229: '„Odbuduj kontener” to bezpieczna akcja, która zajmuje tylko kilka sekund. Prawdopodobnie rozwiąże ten problem.',
|
||||
230: '„Odinstaluj serwis” to niebezpieczna akcja, która usunie serwis ze StartOS i trwale usunie wszystkie jego dane.',
|
||||
230: '„Twarde odinstalowanie” to niebezpieczna akcja, która usunie serwis ze StartOS i trwale usunie wszystkie jego dane.',
|
||||
231: 'Odbuduj kontener',
|
||||
232: 'Odinstaluj serwis',
|
||||
232: 'Miękkie odinstalowanie',
|
||||
233: 'Zobacz pełną wiadomość',
|
||||
234: 'Błąd serwisu',
|
||||
235: 'Oczekiwanie na wynik',
|
||||
@@ -247,7 +247,6 @@ export default {
|
||||
244: 'Hosting',
|
||||
245: 'Instalowanie',
|
||||
246: 'Zobacz poniżej',
|
||||
247: 'Sterowanie',
|
||||
248: 'Brak zainstalowanych serwisów',
|
||||
249: 'Uruchomiony',
|
||||
250: 'Zatrzymany',
|
||||
@@ -414,12 +413,12 @@ export default {
|
||||
411: 'Inne sieci',
|
||||
412: 'WiFi jest wyłączone',
|
||||
413: 'Nie wykryto interfejsu bezprzewodowego',
|
||||
414: 'Włączanie WiFi',
|
||||
415: 'Wyłączanie WiFi',
|
||||
414: 'Włączanie',
|
||||
415: 'Wyłączanie',
|
||||
416: 'Łączenie. To może chwilę potrwać',
|
||||
417: 'Ponów próbę',
|
||||
418: 'Pokaż więcej',
|
||||
419: 'Informacje o wydaniu',
|
||||
419: 'Zobacz szczegóły',
|
||||
420: 'Zobacz listę',
|
||||
421: 'Serwisy zależne od',
|
||||
422: 'przestaną działać poprawnie i mogą ulec awarii.',
|
||||
@@ -503,5 +502,20 @@ export default {
|
||||
500: 'Zobacz Rynek',
|
||||
501: 'Witamy w',
|
||||
502: 'suwerenne przetwarzanie',
|
||||
503: 'francuski',
|
||||
503: 'Dostosuj nazwę wyświetlaną na karcie przeglądarki',
|
||||
504: 'Zarządzać',
|
||||
505: 'Czy na pewno chcesz usunąć ten adres?',
|
||||
506: '„Miękkie odinstalowanie” usunie usługę z StartOS, ale zachowa jej dane.',
|
||||
507: 'Brak zapisanych dostawców',
|
||||
508: 'Tryb kiosku',
|
||||
509: 'Włączony',
|
||||
510: 'Wyłącz tryb kiosku, chyba że potrzebujesz podłączyć monitor',
|
||||
511: 'Włącz tryb kiosku, jeśli potrzebujesz podłączyć monitor',
|
||||
512: 'Tryb kiosku jest niedostępny na tym urządzeniu',
|
||||
513: 'Włącz',
|
||||
514: 'Wyłącz',
|
||||
515: 'Obecnie używasz kiosku. Wyłączenie trybu kiosku spowoduje jego rozłączenie.',
|
||||
516: 'Zalecane',
|
||||
517: 'Czy na pewno chcesz odrzucić to zadanie?',
|
||||
518: 'Odrzuć',
|
||||
} satisfies i18n
|
||||
|
||||
@@ -11,8 +11,6 @@ import { I18N, i18nKey } from './i18n.providers'
|
||||
export class i18nPipe implements PipeTransform {
|
||||
private readonly i18n = inject(I18N)
|
||||
|
||||
// @TODO uncomment to make sure translations are present
|
||||
// transform(englishKey: string | null | undefined): string | undefined {
|
||||
transform(englishKey: i18nKey | null | undefined): string | undefined {
|
||||
return englishKey
|
||||
? this.i18n()?.[ENGLISH[englishKey as i18nKey]] || englishKey
|
||||
|
||||
@@ -34,5 +34,11 @@ export class i18nService extends TuiLanguageSwitcherService {
|
||||
}
|
||||
}
|
||||
|
||||
export const languages = ['english', 'spanish', 'polish', 'german', 'french'] as const
|
||||
export const languages = [
|
||||
'english',
|
||||
'spanish',
|
||||
'polish',
|
||||
'german',
|
||||
'french',
|
||||
] as const
|
||||
export type Languages = (typeof languages)[number]
|
||||
|
||||
@@ -12,13 +12,15 @@ export function formatProgress({ phases, overall }: T.FullProgress): {
|
||||
p,
|
||||
): p is {
|
||||
name: string
|
||||
progress: {
|
||||
done: number
|
||||
total: number | null
|
||||
}
|
||||
progress:
|
||||
| false
|
||||
| {
|
||||
done: number
|
||||
total: number | null
|
||||
}
|
||||
} => p.progress !== true && p.progress !== null,
|
||||
)
|
||||
.map(p => `<b>${p.name}</b>${getPhaseBytes(p.progress)}`)
|
||||
.map(p => `<b>${p.name}</b>: (${getPhaseBytes(p.progress)})`)
|
||||
.join(', '),
|
||||
}
|
||||
}
|
||||
@@ -33,8 +35,13 @@ function getDecimal(progress: T.Progress): number {
|
||||
}
|
||||
}
|
||||
|
||||
function getPhaseBytes(progress: T.Progress): string {
|
||||
return progress === true || !progress
|
||||
? ''
|
||||
: `: (${progress.done}/${progress.total})`
|
||||
function getPhaseBytes(
|
||||
progress:
|
||||
| false
|
||||
| {
|
||||
done: number
|
||||
total: number | null
|
||||
},
|
||||
): string {
|
||||
return !progress ? 'unknown' : `${progress.done}/${progress.total}`
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user