Skip to content
Merged
Show file tree
Hide file tree
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
336 changes: 336 additions & 0 deletions frontend/messages/de.json

Large diffs are not rendered by default.

336 changes: 336 additions & 0 deletions frontend/messages/en.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,341 @@
{
"$schema": "https://inlang.com/schema/inlang-message-format",
"appLogoAlt": "OrcaCD Logo",
"pageNotFound": "Page Not Found",
"somethingWentWrong": "Something went wrong",
"goHome": "Go Home",
"close": "Close",
"cancel": "Cancel",
"done": "Done",
"edit": "Edit",
"add": "Add",
"create": "Create",
"update": "Update",
"delete": "Delete",
"next": "Next",
"previous": "Previous",
"actions": "Actions",
"loading": "Loading",
"loadingDots": "Loading...",
"saving": "Saving",
"savingDots": "Saving...",
"updating": "Updating",
"updatingDots": "Updating...",
"refresh": "Refresh",
"sync": "Sync",
"syncing": "Syncing...",
"rollback": "Rollback",
"unknown": "Unknown",
"never": "Never",
"enabled": "Enabled",
"disabled": "Disabled",
"more": "More",
"openMenu": "Open menu",
"toggleSidebar": "Toggle Sidebar",
"sidebar": "Sidebar",
"mobileSidebarDescription": "Displays the mobile sidebar.",
"copyToClipboard": "Copy to clipboard",
"copyValue": "Copy value",
"breadcrumb": "Breadcrumb",
"errorAlertTitle": "Error",
"errorAlertDefaultDescription": "An unexpected error occurred. Please try again.",
"successAlertTitle": "Success",
"successAlertDefaultDescription": "Operation completed successfully.",
"confirmAction": "Confirm",
"areYouSure": "Are you sure?",
"confirmDialogDefaultDescription": "This action cannot be undone.",
"confirmProceed": "Proceed",
"columnOptions": "Column Options",
"toggleColumns": "Toggle columns",
"sortAscending": "Asc",
"sortDescending": "Desc",
"hideColumn": "Hide",
"searchRepositories": "Search repositories...",
"searchUsers": "Search users...",
"searchApplications": "Search applications...",
"searchAgents": "Search agents...",
"noResults": "No results.",
"noApplicationsFound": "No applications found",
"noApplicationsFoundDescription": "Adjust your search to see matching applications.",
"noAgentsFound": "No agents found",
"noAgentsFoundDescription": "Adjust your search to see matching agents.",
"totalAgentsCount": "There are {count} agents in total",
"appsCount": "Apps count",
"notAvailableShort": "n/a",
"cardActions": "Card actions",
"deleteAgentCardTitle": "Delete agent card?",
"deleteAgentCardDescription": "This will permanently delete \"{name}\". This action cannot be undone.",
"statusOnline": "Online",
"statusOffline": "Offline",
"statusError": "Error",
"statusSynced": "Synced",
"statusOutOfSync": "Out of Sync",
"statusSyncing": "Syncing",
"statusHealthy": "Healthy",
"statusUnhealthy": "Unhealthy",
"userSettings": "User Settings",
"signOut": "Sign Out",
"navApplications": "Applications",
"navAgents": "Agents",
"navRepositories": "Repositories",
"navAdmin": "Admin",
"settings": "Settings",
"account": "Account",
"management": "Management",
"admin": "Admin",
"profile": "Profile",
"language": "Language",
"languageDescription": "Choose your preferred language for the interface.",
"selectLanguage": "Select language",
"languageEnglish": "English",
"languageGerman": "German",
"failedUpdateLanguage": "Failed to update language preference",
"security": "Security",
"pageApplications": "Applications",
"applicationsPageDescription": "Manage and monitor your deployments",
"applicationsStatTotalApps": "Total Apps",
"applicationsStatSynced": "Synced",
"applicationsStatOutOfSync": "Out of Sync",
"applicationsStatHealthy": "Healthy",
"manifest": "Manifest",
"events": "Events",
"comingSoon": "Coming soon...",
"deleteApplicationDescription": "Are you sure you want to delete this application? This action cannot be undone.",
"toastApplicationDeleted": "Application {name} deleted successfully",
"toastDeleteApplicationFailed": "Failed to delete application",
"applicationInfoRepository": "Repository",
"applicationInfoLatestCommit": "Latest Commit",
"applicationInfoTargetHost": "Target Host",
"applicationInfoLastSync": "Last Sync",
"applicationInfoAutoSyncEnabled": "Auto-sync enabled",
"pageRepositories": "Repositories",
"repositoriesPageDescription": "Manage connected Git repositories",
"loadingRepositories": "Loading repositories...",
"pageAgents": "Agents",
"agentsPageDescription": "Manage Docker hosts and servers",
"loadingAgents": "Loading agents...",
"adminUserManagement": "User Management",
"adminUsersDescription": "Manage local user accounts and their roles.",
"loadingUsers": "Loading users...",
"adminOidcProviders": "SSO Providers",
"adminOidcProvidersDescription": "Configure OpenID Connect providers for single sign-on.",
"loadingProviders": "Loading providers...",
"noSsoProvidersConfigured": "No SSO providers configured yet. Click \"Add Provider\" to get started.",
"providerDeleted": "Provider deleted",
"failedDeleteProvider": "Failed to delete provider",
"clientId": "Client ID",
"extraScopes": "Extra Scopes",
"verifiedEmailRequired": "Verified email required",
"unverifiedEmailAllowed": "Unverified email allowed",
"autoSignup": "Auto signup",
"noAutoSignup": "No auto signup",
"callbackUrl": "Callback URL",
"copyCallbackUrl": "Copy callback URL",
"adminSystemInfo": "System Information",
"adminSystemInfoDescription": "Current server configuration and environment settings.",
"loadingSystemInfo": "Loading system info...",
"serverConfiguration": "Server Configuration",
"upToDate": "Up to date",
"updateAvailable": "Update available: {version}",
"versionDetails": "Version: {version} (commit: {commit}, built: {buildDate})",
"appUrl": "App URL",
"host": "Host",
"port": "Port",
"logLevel": "Log Level",
"passwordAuthentication": "Password Authentication",
"trustedProxies": "Trusted Proxies",
"noneConfigured": "None configured",
"settingsProfileHeadTitle": "Settings - Profile",
"settingsSecurityHeadTitle": "Settings - Security",
"validationMustBeValidEmailAddress": "Must be a valid email address",
"profileUpdated": "Profile updated",
"profileDescription": "Manage your account information.",
"failedUpdateProfile": "Failed to update profile",
"personalInformation": "Personal Information",
"managedProfile": "Managed Profile",
"managedProfileReadOnlyDescription": "Your profile is managed by your identity provider and cannot be edited here.",
"saveChanges": "Save Changes",
"securityDescription": "Manage your password.",
"changePassword": "Change Password",
"passwordUpdatedSuccessfully": "Password updated successfully",
"failedUpdatePassword": "Failed to update password",
"passwordManagementUnavailableForSso": "Password management is not available for SSO accounts.",
"currentPassword": "Current Password",
"newPassword": "New Password",
"confirmNewPassword": "Confirm New Password",
"updatePassword": "Update Password",
"validationCurrentPasswordRequired": "Current password is required",
"validationNewPasswordMinLength": "New password must be at least 8 characters",
"validationNewPasswordMaxLength": "New password must be at most 128 characters",
"validationConfirmNewPasswordRequired": "Please confirm your new password",
"forcePasswordChangeRequired": "Password Change Required",
"forcePasswordChangeDescription": "Your administrator reset your password. Update it now to continue.",
"passwordUpdated": "Password updated",
"editAgent": "Edit Agent",
"addAgent": "Add Agent",
"addAgentDescription": "Add a new agent to manage Docker hosts and servers.",
"editAgentDescription": "Update the agent configuration.",
"agentNamePlaceholder": "e.g. \"prod-server-01\"",
"agentUpdated": "Agent updated",
"agentConnected": "Agent connected",
"failedSaveAgent": "Failed to save agent",
"agentAuthTokenTitle": "Agent Auth Token",
"copyTokenNow": "Copy this token now. It will not be shown again.",
"authToken": "Auth token",
"authTokenPlaceholder": "e.g. ghp_xxxxxxxxxxxx",
"authTokenRecommendedHint": "Recommended for private repositories.",
"copyAgentAuthToken": "Copy agent auth token",
"validationAgentNameRequired": "Name is required",
"validationAgentNameMaxLength": "Name must be at most 128 characters",
"editApplication": "Edit Application",
"addApplication": "Add Application",
"newApplication": "New Application",
"addApplicationDescription": "Add a new application to monitor and manage.",
"editApplicationDescription": "Update the application configuration.",
"applicationNamePlaceholder": "e.g. \"notifications-service\"",
"repository": "Repository",
"selectRepository": "Select a repository",
"selectAgent": "Select an agent",
"branch": "Branch",
"selectBranch": "Select a branch",
"selectRepositoryFirst": "Select a repository first",
"selectBranchFirst": "Select a branch first",
"loadingBranchesDots": "Loading branches...",
"branchPlaceholder": "e.g. \"main\"",
"path": "Path",
"composeFile": "Compose File",
"pathPlaceholder": "e.g. \"/docker-compose.yml\"",
"loadingRepositoryTreeDots": "Loading repository tree...",
"noFilesFoundInBranch": "No files found in this branch.",
"selectedFilePath": "Selected file path",
"applicationUpdated": "Application updated",
"applicationCreated": "Application created",
"failedSaveApplication": "Failed to save application",
"updateApplication": "Update Application",
"validationApplicationNameRequired": "Name is required",
"validationApplicationNameMaxLength": "Name must be at most 128 characters",
"validationRepositoryRequired": "Repository is required",
"validationAgentRequired": "Agent is required",
"validationBranchRequired": "Branch is required",
"validationBranchMaxLength": "Branch must be at most 256 characters",
"validationPathRequired": "Path is required",
"validationPathMaxLength": "Path must be at most 512 characters",
"validationPathMustBeYAML": "Path must end with .yml or .yaml",
"editProvider": "Edit Provider",
"addProvider": "Add Provider",
"addProviderDescription": "Configure a new OpenID Connect provider.",
"editProviderDescription": "Update the OIDC provider configuration.",
"displayName": "Display Name",
"displayNamePlaceholder": "e.g. \"Google\" or \"Corporate SSO\"",
"issuerUrl": "Issuer URL",
"issuerUrlPlaceholder": "https://accounts.google.com",
"clientSecret": "Client Secret",
"leaveBlankKeepCurrent": "(leave blank to keep current)",
"additionalScopes": "Additional Scopes",
"optional": "(optional)",
"additionalScopesPlaceholder": "e.g. groups,offline_access",
"requireVerifiedEmails": "Require verified emails",
"allowAutoSignup": "Allow auto signup",
"createProvider": "Create Provider",
"updateProvider": "Update Provider",
"providerUpdated": "Provider updated",
"providerCreated": "Provider created",
"failedSaveProvider": "Failed to save provider",
"validationProviderNameRequired": "Name is required",
"validationProviderNameMaxLength": "Name must be at most 100 characters",
"validationIssuerUrlInvalid": "Issuer URL must be a valid URL",
"validationClientIdRequired": "Client Id is required",
"validationClientSecretRequired": "Client secret is required",
"validationRepositoryUrlInvalid": "Repository URL must be a valid URL",
"validationAuthTokenMaxLength": "Auth token must be at most 1024 characters",
"selectProviderDescription": "Select the Git provider for this repository.",
"repositoryConnectionDescription": "Enter the repository URL and an auth token.",
"syncTypeDescription": "Decide how OrcaCD should check for updates in this repository.",
"syncTypeWebhookRecommended": "Webhook (Recommended)",
"syncTypeWebhookDescription": "Real-time updates with minimal resource usage.",
"syncTypePolling": "Polling",
"syncTypePollingDescription": "Periodic checks for updates. May have a delay.",
"syncTypeManual": "Manual",
"syncTypeManualDescription": "Updates must be triggered manually.",
"cantConnectToRepository": "Can't connect to repository",
"repositoryUpdatedTitle": "Repository updated",
"repositoryConnectedTitle": "Repository connected",
"repositoryUpdatedDescription": "The repository has been successfully updated.",
"repositoryConnectedDescription": "The repository has been successfully connected.",
"repositoryNoFurtherAction": "No further action is needed. OrcaCD will start syncing with the repository shortly.",
"repositoryWebhookSetupDescription": "Set up a webhook in your repository to enable real-time updates:",
"webhookUrl": "Webhook URL",
"copyWebhookUrl": "Copy webhook URL",
"webhookSecret": "Webhook Secret",
"copyWebhookSecret": "Copy webhook secret",
"revealSecret": "Reveal secret",
"hideSecret": "Hide secret",
"saveSecretNow": "Save this secret now - it won't be shown again.",
"docsLinkComingSoon": "TODO: Link to docs",
"connectRepository": "Connect Repository",
"updateRepository": "Update Repository",
"addRepository": "Add Repository",
"editRepository": "Edit Repository",
"failedConnectRepository": "Failed to connect to repository. Please check the URL and auth token.",
"unexpectedError": "An unexpected error occurred",
"editUser": "Edit User",
"addUser": "Add User",
"editUserDescription": "Update user details and permissions. Optionally reset the password.",
"addUserDescription": "Create a new local user account. A temporary password will be generated.",
"fullNamePlaceholder": "Full name",
"role": "Role",
"roleAdmin": "Admin",
"roleUser": "User",
"resetPassword": "Reset password",
"resetPasswordDescription": "Generate a new password and require the user to change it after sign-in.",
"updateUser": "Update User",
"createUser": "Create User",
"userUpdatedAndPasswordReset": "User updated and password reset",
"userUpdated": "User updated",
"userCreated": "User created",
"failedSaveUser": "Failed to save user",
"generatedPassword": "Generated Password",
"copyPasswordNow": "Copy this password now. It will not be shown again.",
"copyGeneratedPassword": "Copy generated password",
"userDeleted": "User deleted",
"failedDeleteUser": "Failed to delete user",
"deleteUserTitle": "Delete user?",
"deleteUserDescription": "This will permanently delete \"{name}\" ({email}). This action cannot be undone.",
"you": "You",
"providerPassword": "Password",
"repositoryDeleted": "Repository {name} deleted successfully",
"failedDeleteRepository": "Failed to delete repository",
"failedDeleteAgent": "Failed to delete agent",
"agentDeleted": "Agent {name} deleted successfully",
"disconnect": "Disconnect",
"columnName": "Name",
"columnStatus": "Status",
"columnSyncStatus": "Sync Status",
"columnHealthStatus": "Health Status",
"columnRepository": "Repository",
"columnAgent": "Agent",
"columnBranch": "Branch",
"columnPath": "Path",
"columnLastSync": "Last Sync",
"columnSyncType": "Sync Type",
"columnAuthMethod": "Auth Method",
"columnApps": "Apps",
"columnCreatedAt": "Created At",
"columnEmail": "Email",
"columnRole": "Role",
"columnProviders": "Providers",
"gitProviderAlt": "Git Provider",
"repoSyncStatusSyncing": "Syncing",
"repoSyncStatusFailed": "Failed",
"repoSyncStatusSuccess": "Success",
"repoSyncTypeWebhook": "Webhook",
"repoSyncTypePolling": "Polling",
"repoSyncTypeManual": "Manual",
"themeLight": "Light",
"themeDark": "Dark",
"switchToTheme": "Switch to {theme} theme",
"githubLogoAlt": "GitHub Logo",
"loginWallpaperAlt": "Orca swimming away from shore by Lachlan Gowen on Unsplash",
"email": "Email",
"password": "Password",
"login": "Login",
Expand Down
5 changes: 3 additions & 2 deletions frontend/src/components/alerts/error-alert.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert";
import { AlertTriangleIcon } from "lucide-react";
import { m } from "@/lib/paraglide/messages";

export default function ErrorAlert({
title,
Expand All @@ -10,12 +11,12 @@ export default function ErrorAlert({
}) {
const desc = description
? description.at(0)?.toUpperCase() + description.slice(1)
: "An error occurred.";
: m.errorAlertDefaultDescription();

return (
<Alert className="mt-2 border-red-200 bg-red-50 text-red-900 dark:border-red-900 dark:bg-red-950 dark:text-red-50">
<AlertTriangleIcon />
<AlertTitle>{title || "Error"}</AlertTitle>
<AlertTitle>{title || m.errorAlertTitle()}</AlertTitle>
<AlertDescription className="text-foreground text-wrap">{desc}</AlertDescription>
</Alert>
);
Expand Down
5 changes: 3 additions & 2 deletions frontend/src/components/alerts/success-alert.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert";
import { CheckCircle2Icon } from "lucide-react";
import { m } from "@/lib/paraglide/messages";

export default function SuccessAlert({
title,
Expand All @@ -10,12 +11,12 @@ export default function SuccessAlert({
}) {
const desc = description
? description.at(0)?.toUpperCase() + description.slice(1)
: "Operation successful.";
: m.successAlertDefaultDescription();

return (
<Alert className="mt-2 border-green-200 bg-green-50 text-green-900 dark:border-green-900 dark:bg-green-950 dark:text-green-50">
<CheckCircle2Icon />
<AlertTitle>{title || "Success"}</AlertTitle>
<AlertTitle>{title || m.successAlertTitle()}</AlertTitle>
<AlertDescription className="text-foreground text-wrap">{desc}</AlertDescription>
</Alert>
);
Expand Down
Loading
Loading