diff --git a/.gitignore b/.gitignore
index 9c6d4a32..ba9819d2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,6 +11,7 @@
*.log
*.out
*.exe
+.npm-cache/
reports
reports/*
diff --git a/adminfront/playwright-report/index.html b/adminfront/playwright-report/index.html
deleted file mode 100644
index a369469d..00000000
--- a/adminfront/playwright-report/index.html
+++ /dev/null
@@ -1,85 +0,0 @@
-
-
-
-
-
-
-
-
- Playwright Test Report
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/locales/en.toml b/locales/en.toml
index a56f7c8b..19966500 100644
--- a/locales/en.toml
+++ b/locales/en.toml
@@ -258,6 +258,7 @@ error = "Error"
loading = "Loading..."
no_description = "No Description."
saving = "Saving..."
+requesting = "Requesting..."
unknown_error = "unknown error"
[msg.dev]
@@ -1080,6 +1081,12 @@ scope_badge = "Scoped to /dev"
clients = "Connected Application"
logout = "Logout"
+[ui.dev.profile]
+menu_aria = "Open account menu"
+menu_title = "Account"
+unknown_email = "unknown@example.com"
+unknown_name = "Unknown User"
+
[ui.dev.clients]
copy_client_id = "Copy client id"
new = "Add Connected Application"
@@ -1276,6 +1283,8 @@ unknown = "Unknown"
expired = "Session expired"
expiring = "Expiring soon: {{minutes}}m {{seconds}}s left"
remaining = "Expires in: {{minutes}}m {{seconds}}s"
+refresh = "Refresh session expiry"
+refreshing = "Refreshing session expiry..."
[ui.userfront]
app_title = "Baron SW Portal"
diff --git a/locales/ko.toml b/locales/ko.toml
index f7889a55..977a9b07 100644
--- a/locales/ko.toml
+++ b/locales/ko.toml
@@ -258,6 +258,7 @@ error = "오류가 발생했습니다."
loading = "로딩 중..."
no_description = "설명이 없습니다."
saving = "저장 중..."
+requesting = "요청 중..."
unknown_error = "unknown error"
[msg.dev]
@@ -1080,6 +1081,12 @@ scope_badge = "Scoped to /dev"
clients = "연동 앱"
logout = "로그아웃"
+[ui.dev.profile]
+menu_aria = "계정 메뉴 열기"
+menu_title = "계정"
+unknown_email = "unknown@example.com"
+unknown_name = "Unknown User"
+
[ui.dev.clients]
copy_client_id = "Copy client id"
new = "연동 앱 추가"
@@ -1276,6 +1283,8 @@ unknown = "확인 불가"
expired = "세션 만료"
expiring = "만료 임박: {{minutes}}분 {{seconds}}초 남음"
remaining = "만료 예정: {{minutes}}분 {{seconds}}초 남음"
+refresh = "세션 만료 시간 갱신"
+refreshing = "세션 만료 시간 갱신 중..."
[ui.userfront]
app_title = "Baron SW 포탈"
diff --git a/locales/template.toml b/locales/template.toml
index db96cadd..55567ffb 100644
--- a/locales/template.toml
+++ b/locales/template.toml
@@ -18,24 +18,6 @@ saman = ""
[err.common]
unknown = ""
-[err.backend]
-authorization_pending = ""
-bad_request = ""
-conflict = ""
-expired_token = ""
-forbidden = ""
-internal_error = ""
-invalid_code = ""
-invalid_or_expired_code = ""
-invalid_session = ""
-invalid_session_reference = ""
-not_found = ""
-not_supported = ""
-password_or_email_mismatch = ""
-rate_limited = ""
-service_unavailable = ""
-slow_down = ""
-
[err.userfront]
[err.userfront.auth_proxy]
@@ -220,18 +202,16 @@ count = ""
[msg.common]
loading = ""
saving = ""
+requesting = ""
unknown_error = ""
[msg.dev]
logout_confirm = ""
[msg.dev.clients]
-copy_client_id = ""
load_error = ""
loading = ""
showing = ""
-status_update_error = ""
-status_updated = ""
deleted = ""
delete_error = ""
delete_confirm = ""
@@ -430,7 +410,6 @@ token_missing = ""
verification_failed = ""
[msg.userfront.login.link]
-approved = ""
helper = ""
missing_login_id = ""
missing_phone = ""
@@ -493,8 +472,6 @@ organization = ""
security = ""
[msg.userfront.qr]
-approve_error = ""
-approve_success = ""
camera_error = ""
permission_error = ""
permission_required = ""
@@ -915,6 +892,7 @@ create = ""
delete = ""
details = ""
edit = ""
+view = ""
hyphen = ""
na = ""
never = ""
@@ -925,7 +903,6 @@ previous = ""
qr = ""
read_only = ""
refresh = ""
-requesting = ""
resend = ""
retry = ""
save = ""
@@ -967,8 +944,13 @@ scope_badge = ""
clients = ""
logout = ""
+[ui.dev.profile]
+menu_aria = ""
+menu_title = ""
+unknown_email = ""
+unknown_name = ""
+
[ui.dev.clients]
-copy_client_id = ""
new = ""
search_placeholder = ""
tenant_scoped = ""
@@ -1055,10 +1037,6 @@ title_edit = ""
[ui.dev.clients.general.breadcrumb]
section = ""
-[ui.dev.clients.general.footer]
-client_id = ""
-created_on = ""
-
[ui.dev.clients.general.identity]
description = ""
description_placeholder = ""
@@ -1163,6 +1141,8 @@ unknown = ""
expired = ""
expiring = ""
remaining = ""
+refresh = ""
+refreshing = ""
[ui.userfront]
app_title = ""
@@ -1239,12 +1219,9 @@ login_id = ""
password = ""
[ui.userfront.login.link]
-action_label = ""
code_only = ""
-page_title = ""
resend_with_time = ""
send = ""
-title = ""
[ui.userfront.login.qr]
expired = ""
@@ -1314,9 +1291,7 @@ organization = ""
security = ""
[ui.userfront.qr]
-request_permission = ""
rescan = ""
-result_failure = ""
result_success = ""
title = ""
@@ -1393,8 +1368,6 @@ delete_confirm = ""
delete_error = ""
delete_success = ""
empty = ""
-import_error = ""
-import_success = ""
loading = ""
[msg.admin.groups.members]
@@ -1428,7 +1401,6 @@ no_description = ""
[ui.admin.groups]
add_unit = ""
-import_csv = ""
[ui.admin.groups.create]
description = ""
@@ -1448,10 +1420,6 @@ parent_none = ""
unit_level_label = ""
unit_level_placeholder = ""
-[ui.admin.groups.table]
-created_at = ""
-level = ""
-
[ui.admin.tenants.admins]
add_button = ""
already_admin = ""
diff --git a/tools/i18n-scanner/manual-keys.ts b/tools/i18n-scanner/manual-keys.ts
index ee374a68..f6dff763 100644
--- a/tools/i18n-scanner/manual-keys.ts
+++ b/tools/i18n-scanner/manual-keys.ts
@@ -14,6 +14,7 @@ t("ui.admin.nav.audit_logs");
t("ui.admin.nav.auth_guard");
t("ui.admin.nav.logout");
t("ui.admin.nav.relying_parties");
+t("ui.dev.nav.clients");
// Common & Info
t("err.common.unknown");