From ad57e3939435d654c8cc728c7884cc89d2f0079e Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Mon, 12 Oct 2026 20:12:05 +0200
Subject: [PATCH] Improve labels
---
.../components/admin-users/admin-users.component.ts | 2 ++
.../src/app/components/admin-users/admin-users.html | 2 +-
.../user-detail-dialog/user-detail-dialog.component.ts | 2 ++
.../user-detail-dialog/user-detail-dialog.html | 4 +++-
libs/ui/src/lib/i18n.ts | 10 +++++++++-
5 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/apps/client/src/app/components/admin-users/admin-users.component.ts b/apps/client/src/app/components/admin-users/admin-users.component.ts
index 04d5daa907..8e459b4a40 100644
--- a/apps/client/src/app/components/admin-users/admin-users.component.ts
+++ b/apps/client/src/app/components/admin-users/admin-users.component.ts
@@ -22,6 +22,7 @@ import {
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { internalRoutes } from '@ghostfolio/common/routes/routes';
import { RequestClient } from '@ghostfolio/prisma/enums';
+import { translate } from '@ghostfolio/ui/i18n';
import { NotificationService } from '@ghostfolio/ui/notifications';
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
import { AdminService, DataService } from '@ghostfolio/ui/services';
@@ -114,6 +115,7 @@ export class GfAdminUsersComponent implements OnInit {
internalRoutes.adminControl.subRoutes.users.routerLink;
protected totalItems = 0;
+ protected readonly translate = translate;
protected user: User;
private readonly deviceType = computed(
diff --git a/apps/client/src/app/components/admin-users/admin-users.html b/apps/client/src/app/components/admin-users/admin-users.html
index 3b8b09235b..f61006e0cc 100644
--- a/apps/client/src/app/components/admin-users/admin-users.html
+++ b/apps/client/src/app/components/admin-users/admin-users.html
@@ -197,7 +197,7 @@
} @else {
diff --git a/apps/client/src/app/components/user-detail-dialog/user-detail-dialog.component.ts b/apps/client/src/app/components/user-detail-dialog/user-detail-dialog.component.ts
index db8c94abcd..f34555efc2 100644
--- a/apps/client/src/app/components/user-detail-dialog/user-detail-dialog.component.ts
+++ b/apps/client/src/app/components/user-detail-dialog/user-detail-dialog.component.ts
@@ -6,6 +6,7 @@ import {
} from '@ghostfolio/common/helper';
import { AdminUserResponse } from '@ghostfolio/common/interfaces';
import type { Subscription } from '@ghostfolio/prisma/browser';
+import { translate } from '@ghostfolio/ui/i18n';
import { AdminService, DataService } from '@ghostfolio/ui/services';
import { GfValueComponent } from '@ghostfolio/ui/value';
@@ -70,6 +71,7 @@ export class GfUserDetailDialogComponent implements OnInit {
'expiresAt'
];
+ protected readonly translate = translate;
protected user: AdminUserResponse;
protected readonly data = inject(MAT_DIALOG_DATA);
diff --git a/apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html b/apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
index 599b5cde71..d52a7d5b51 100644
--- a/apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+++ b/apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
@@ -174,7 +174,9 @@
i18n
size="medium"
[isLoading]="isLoading"
- [value]="user?.lastRequestClient || '-'"
+ [value]="
+ user?.lastRequestClient ? translate(user.lastRequestClient) : '-'
+ "
>Client
diff --git a/libs/ui/src/lib/i18n.ts b/libs/ui/src/lib/i18n.ts
index 4040b45c57..a7b09b63db 100644
--- a/libs/ui/src/lib/i18n.ts
+++ b/libs/ui/src/lib/i18n.ts
@@ -3,6 +3,7 @@ import type {
ProductPlatform,
SectorName
} from '@ghostfolio/common/types';
+import { RequestClient } from '@ghostfolio/prisma/enums';
import '@angular/localize/init';
@@ -121,9 +122,16 @@ const locales = {
LINUX: 'Linux',
MACOS: 'macOS',
WEB: $localize`Web`,
- WINDOWS: 'Windows'
+ WINDOWS: 'Windows',
+
+ // Request clients
+ API: 'API',
+ MCP: 'MCP',
+ SELF_HOSTING: $localize`Self-Hosting`
+ // WEB is defined above under Product platforms
} satisfies Record &
Record &
+ Record &
Record &
Record;