Five settings pages moved from a `*_SELECTED` global to `/settings/:page/:section`. The sidebar entry is a react-router `<NavLink>` rather than a button holding the key in its onClick closure, so a section is linkable, cmd-clickable and gets its active state from the router; each page renders one `SettingsRoute` guard that canonicalises both the bare route and a section that does not exist. Integrations needed more than the shared factory. It builds its own sidebar, and it kept the Enterprise/Personal tab in a second global — which is why a deep link to a Personal section could never have worked: the link set the section, the tab stayed on Enterprise, and the content pane said "Select a section" about a section that existed. The tab is derived from the section key now. Also removes the `/settings/resources` menu item (audit M8) and its two locale keys: there has never been such a route, so it bounced to the catch-all and out to `/`.
69 lines
2.2 KiB
JSON
69 lines
2.2 KiB
JSON
{
|
|
"common": {
|
|
"save": "Save",
|
|
"saving": "Saving...",
|
|
"cancel": "Cancel"
|
|
},
|
|
"settings": {
|
|
"profile": {
|
|
"searchPlaceholder": "Search settings...",
|
|
"sections": {
|
|
"profileTitle": "Profile",
|
|
"profileDescription": "Update your name and avatar.",
|
|
"changePasswordTitle": "Change Password",
|
|
"changePasswordDescription": "Update your account password.",
|
|
"tasksTitle": "Tasks",
|
|
"tasksDescription": "Default model for file browser tasks.",
|
|
"languagesTitle": "Languages",
|
|
"languagesDescription": "Set your spoken languages and translation preferences."
|
|
},
|
|
"userData": {
|
|
"emailLabel": "Email",
|
|
"nameLabel": "Name",
|
|
"namePlaceholder": "Your name",
|
|
"profileUpdated": "Profile updated",
|
|
"profileUpdateFailed": "Failed to update profile",
|
|
"selectImageFile": "Please select an image file",
|
|
"imageTooLarge": "Image must be smaller than 384KB"
|
|
},
|
|
"changePassword": {
|
|
"currentPasswordLabel": "Current Password",
|
|
"currentPasswordPlaceholder": "Current password",
|
|
"newPasswordLabel": "New Password",
|
|
"newPasswordPlaceholder": "New password",
|
|
"confirmPasswordLabel": "Confirm New Password",
|
|
"confirmPasswordPlaceholder": "Confirm new password",
|
|
"changeButton": "Change Password",
|
|
"changingButton": "Changing...",
|
|
"passwordChanged": "Password changed",
|
|
"passwordChangeFailed": "Failed to change password"
|
|
},
|
|
"languages": {
|
|
"spokenLabel": "Languages you speak",
|
|
"addLanguage": "Add a language...",
|
|
"defaultLabel": "Default language",
|
|
"defaultHint": "Used for UI localization.",
|
|
"translateToLabel": "Translate to",
|
|
"translateToHint": "Target language when translating content you don't speak."
|
|
}
|
|
}
|
|
},
|
|
"header": {
|
|
"userMenu": {
|
|
"profile": "Profile",
|
|
"systemSettings": "System Settings",
|
|
"signOut": "Sign Out"
|
|
}
|
|
},
|
|
"dock": {
|
|
"chat": "Chat",
|
|
"files": "Files",
|
|
"terminal": "Terminal",
|
|
"plans": "Plans",
|
|
"skills": "Skills",
|
|
"tasks": "Tasks",
|
|
"processes": "Processes",
|
|
"logs": "Logs"
|
|
}
|
|
}
|