feat(frontend): i18n expansion, admin/profile i18n, grid/list view fix, empty state

- Add 5 new locales (hi, ar, ru, ja, ko) — now 14 total
- Admin panel: 117 i18n keys, confirm modal, animated tabs, no inline handlers
- Profile page: 58 i18n keys with data-i18n attributes
- Fix i18n safeT() shadowing bug and translationsLoaded timing
- Fix grid/list view: list header no longer shows in grid mode on login
- Fix classList.toggle hidden sync for view switching across all nav functions
- Revert .hidden important that broke login page rendering
- Add files empty state (no_files + empty_hint) with translations
- Fix language selector dropdown scroll and styling
- Fix admin panel scroll with sticky tabs
This commit is contained in:
Diocrafts
2026-03-09 00:08:34 +01:00
parent f409a9edd7
commit df336da679
43 changed files with 6645 additions and 2043 deletions
+182 -2
View File
@@ -182,6 +182,7 @@
"size": "Size",
"modified": "Modified",
"no_files": "No files in this folder",
"empty_hint": "Upload files or create folders to get started",
"loading": "Loading files…",
"view_grid": "Grid view",
"view_list": "List view",
@@ -320,8 +321,8 @@
"zoom_reset": "Reset zoom"
},
"language_selector": {
"title": "Welcome to OxiCloud",
"subtitle": "Please select your language",
"title": "Welcome!",
"subtitle": "Select your language to continue",
"continue": "Continue",
"languages": {
"en": "English",
@@ -370,5 +371,184 @@
"move_title": "Move {{count}} item(s)",
"add_favorites": "Add to favorites",
"move_copy": "Move or copy"
},
"admin": {
"page_title": "Admin Panel",
"back_to_app": "Back to OxiCloud",
"loading": "Loading…",
"access_denied": "Access Denied",
"access_denied_desc": "Administrator privileges required to access this panel.",
"sign_in": "Sign in",
"tab_dashboard": "Dashboard",
"tab_users": "Users",
"tab_oidc": "SSO / OIDC",
"total_users": "Total Users",
"active_users": "Active Users",
"admins": "Admins",
"version": "Version",
"storage_overview": "Storage Overview",
"used": "Used",
"total_quota": "Total Quota",
"usage_pct": "Usage %",
"users_over_80": "Users >80% quota",
"users_over_quota": "Users over quota",
"system": "System",
"auth_label": "Auth",
"oidc_label": "OIDC",
"quotas_label": "Quotas",
"enabled": "Enabled",
"disabled": "Disabled",
"active": "Active",
"off": "Off",
"allow_registration": "Allow public self-registration",
"registration_warning": "Public registration is disabled. Only admins can create new users.",
"user_management": "User Management",
"create_user": "Create User",
"col_user": "User",
"col_role": "Role",
"col_auth": "Auth",
"col_status": "Status",
"col_storage": "Storage",
"col_last_login": "Last Login",
"col_actions": "Actions",
"loading_users": "Loading users…",
"failed_load_users": "Failed to load users",
"no_users_found": "No users found",
"showing_users": "Showing {{from}}-{{to}} of {{total}}",
"prev": "Prev",
"next": "Next",
"inactive": "Inactive",
"you_badge": "(you)",
"local": "Local",
"never": "Never",
"just_now": "Just now",
"minutes_ago": "{{n}}m ago",
"hours_ago": "{{n}}h ago",
"days_ago": "{{n}}d ago",
"edit_quota_title": "Edit quota",
"reset_password_title": "Reset password",
"toggle_role_title": "Toggle role",
"deactivate_title": "Deactivate",
"activate_title": "Activate",
"delete_title": "Delete",
"sso_title": "Single Sign-On (OIDC / SSO)",
"enable_sso": "Enable SSO Authentication",
"provider_name": "Provider Name",
"issuer_url": "Issuer URL",
"issuer_url_hint": "OpenID Connect issuer URL of your identity provider",
"auto_discover": "Auto-discover",
"discovering": "Discovering…",
"client_id": "Client ID",
"client_secret": "Client Secret",
"client_secret_placeholder": "Leave empty to keep current value",
"secret_configured": "A client secret is already configured",
"callback_url": "Callback URL",
"callback_url_hint": "(register in your IdP)",
"advanced_settings": "Advanced Settings",
"scopes": "Scopes",
"auto_provision": "Auto-provision users on first login",
"admin_groups": "Admin Groups",
"admin_groups_hint": "Comma-separated OIDC group names that map to admin role",
"disable_password": "Disable password login (OIDC only)",
"password_warning": "This will prevent ALL password-based logins!",
"test_btn": "Test",
"save_btn": "Save",
"saving": "Saving…",
"settings_saved": "Settings saved — OIDC is now {{status}}",
"quota_modal_title": "Update Storage Quota",
"quota_user_label": "User:",
"new_quota": "New Quota",
"quota_unlimited_hint": "Set to 0 for unlimited",
"cancel": "Cancel",
"create_user_title": "Create New User",
"username_label": "Username",
"username_placeholder": "johndoe",
"username_hint": "3–32 characters",
"password_label": "Password",
"password_placeholder": "Min 8 characters",
"email_label": "Email",
"email_optional": "(optional)",
"email_placeholder": "user@example.com (auto-generated if empty)",
"role_label": "Role",
"role_user": "User",
"role_admin": "Admin",
"quota_label": "Quota",
"creating": "Creating…",
"reset_pw_title": "Reset Password",
"new_password_label": "New Password",
"resetting": "Resetting…",
"reset_btn": "Reset",
"confirm_role_change": "Change role to {{role}}?",
"confirm_deactivate": "Are you sure you want to deactivate this user?",
"confirm_activate": "Are you sure you want to activate this user?",
"confirm_delete_user": "DELETE user \"{{name}}\"? This cannot be undone!",
"confirm_action": "Confirm Action",
"confirm_yes": "Confirm",
"confirm_no": "Cancel",
"error_username_short": "Username must be at least 3 characters",
"error_password_short": "Password must be at least 8 characters",
"error_generic": "Failed",
"error_network": "Network error: {{message}}",
"error_create_user": "Failed to create user"
},
"profile": {
"page_title": "Profile",
"back_to_app": "Back to OxiCloud",
"loading": "Loading…",
"not_authenticated": "Not Authenticated",
"not_authenticated_desc": "Please sign in to view your profile.",
"sign_in": "Sign in",
"role_admin": "Administrator",
"role_user": "User",
"account_details": "Account Details",
"username": "Username",
"email": "Email",
"role": "Role",
"last_login": "Last Login",
"storage": "Storage",
"used": "Used",
"quota": "Quota",
"usage": "Usage",
"unlimited": "Unlimited",
"app_passwords": "App Passwords",
"app_pw_desc": "Generate passwords for WebDAV, CalDAV, and CardDAV clients. Each password is shown only once.",
"app_pw_label_placeholder": "Label (e.g. Thunderbird, macOS)",
"generate": "Generate",
"generating": "Generating…",
"new_password_for": "New password for",
"copy_warning": "Copy this password now. You won't be able to see it again.",
"copy_to_clipboard": "Copy to clipboard",
"col_label": "Label",
"col_created": "Created",
"col_last_used": "Last Used",
"col_status": "Status",
"active": "Active",
"revoked": "Revoked",
"revoke_title": "Revoke",
"no_app_passwords": "No app passwords yet.",
"client_sessions": "Client sessions",
"client_sessions_desc": "Auto-generated when you connect a Nextcloud-compatible client.",
"col_client": "Client",
"never": "Never",
"just_now": "Just now",
"minutes_ago": "{{n}} min ago",
"hours_ago": "{{n}}h ago",
"days_ago": "{{n}} days ago",
"change_password": "Change Password",
"current_password": "Current Password",
"new_password": "New Password",
"min_8_chars": "At least 8 characters",
"confirm_password": "Confirm New Password",
"update_password": "Update Password",
"updating": "Updating…",
"password_updated": "Password updated successfully",
"passwords_no_match": "Passwords do not match",
"password_too_short": "Password must be at least 8 characters",
"password_change_failed": "Failed to change password",
"error_network": "Network error: {{message}}",
"error_label_required": "Please enter a label",
"error_create_pw": "Failed to create app password",
"confirm_revoke": "Revoke app password \"{{label}}\"? Clients using this password will stop working.",
"error_revoke": "Failed to revoke app password"
}
}