245 lines
10 KiB
TypeScript
245 lines
10 KiB
TypeScript
import type { TranslationCatalog } from "@/lib/i18n/types";
|
|
import { common } from "./common";
|
|
|
|
export const enCatalog = {
|
|
common: {
|
|
...common,
|
|
"notFound.title": "Page not found",
|
|
"notFound.description": "The page you are looking for may have moved, been deleted or never existed.",
|
|
"notFound.backHome": "Go home",
|
|
"error.title": "Something went wrong",
|
|
"error.description": "An unexpected error occurred. Please try again.",
|
|
"error.retry": "Try again",
|
|
"maintenance.title": "Maintenance mode",
|
|
"maintenance.description": "This workspace is briefly under maintenance. Please try again soon.",
|
|
"itemsCount": "{count, plural, one {# item} other {# items}}",
|
|
},
|
|
auth: {
|
|
"login.title": "Sign in",
|
|
"login.description": "Sign in to access your Neta workspace.",
|
|
"login.email": "Email",
|
|
"login.emailPlaceholder": "example@mail.com",
|
|
"login.password": "Password",
|
|
"login.forgotPassword": "Forgot password",
|
|
"login.submit": "Sign in",
|
|
"login.pending": "Signing in...",
|
|
"login.setupPrompt": "Haven't completed first setup?",
|
|
"login.createAdmin": "Create admin account",
|
|
"register.title": "Create admin account",
|
|
"register.firstAdminTitle": "Create the first admin account",
|
|
"register.description": "Create the first admin account for this Neta workspace.",
|
|
"register.submit": "Create admin account",
|
|
"register.pending": "Creating...",
|
|
"register.hasAccount": "Already have an account?",
|
|
"register.closed": "Registration is closed. The first admin account has already been created for this Neta instance.",
|
|
"register.failed": "Could not create user.",
|
|
"forgot.title": "Password reset",
|
|
"forgot.description": "This flow becomes active when an email provider is connected in self-hosted deployments.",
|
|
"forgot.helper": "For now, set a new password from the admin side or manage the user directly in the database.",
|
|
"forgot.back": "Back to sign in",
|
|
"reset.title": "Set a new password",
|
|
"reset.description": "Password reset link integration has not been configured yet.",
|
|
"invite.title": "Accept portal invitation",
|
|
"invite.description": "Set your name and password for the invited account.",
|
|
"invite.email": "Email",
|
|
"invite.displayName": "Full name",
|
|
"invite.password": "Password",
|
|
"invite.passwordHelp": "Use at least 8 characters.",
|
|
"invite.submit": "Create portal account",
|
|
"invite.pending": "Creating account...",
|
|
"invite.backToLogin": "Back to sign in",
|
|
"invite.expired": "This invitation has expired. Ask the freelancer for a new link.",
|
|
"invite.accepted": "This invitation was already used. You can sign in with your account.",
|
|
"invite.revoked": "This invitation was revoked. Ask the freelancer for a new link.",
|
|
"invite.success": "Your portal account has been created. You can sign in now.",
|
|
"language": "Language",
|
|
"marketing.headline": "Manage freelance work, clients and finance in one place.",
|
|
"marketing.description": "{app} is designed to help you track daily operations, projects, side projects and core finance with simple reports.",
|
|
"marketing.openSource": "Open source and self-hostable.",
|
|
"marketing.github": "GitHub",
|
|
"marketing.via": "is where you can find it.",
|
|
"marketing.builtBy": "built by",
|
|
"highlights.clients": "Clients",
|
|
"highlights.calendar": "Calendar",
|
|
"highlights.finance": "Finance",
|
|
"highlights.reports": "Reports",
|
|
"messages.invalidCredentials": "Email or password is incorrect.",
|
|
"messages.setupUnavailable": "Registration is closed. The first freelancer account has already been created for this Neta instance.",
|
|
"messages.setupStateError": "Could not read setup state.",
|
|
"messages.signupFailed": "Could not create user.",
|
|
"messages.portalInviteFailed": "Could not create portal account.",
|
|
},
|
|
navigation: {
|
|
"groups.overview": "OVERVIEW",
|
|
"groups.operations": "OPERATIONS",
|
|
"groups.personal": "PERSONAL",
|
|
"groups.ai": "AI ASSISTANT",
|
|
"groups.processes": "PROCESSES",
|
|
"items.dashboard": "Dashboard",
|
|
"items.calendar": "Calendar",
|
|
"items.analytics": "Analytics",
|
|
"items.clients": "Clients",
|
|
"items.projects": "Projects",
|
|
"items.tasks": "Tasks",
|
|
"items.finance": "Finance",
|
|
"items.journal": "Journal",
|
|
"items.chat": "Chat",
|
|
"items.settings": "Settings",
|
|
"items.portalProjects": "Your projects",
|
|
"items.portalTasks": "Completed tasks",
|
|
"items.portalRevisions": "Revision requests",
|
|
"shell.skipToContent": "Skip to main content",
|
|
"shell.homeAriaLabel": "{app} home",
|
|
"shell.mobileMenuAriaLabel": "Open or close main menu",
|
|
"shell.mobileMenuTooltip": "Menu",
|
|
"shell.logoAlt": "{app} logo",
|
|
"shell.progressTitle": "Project progress",
|
|
"shell.progressValue": "{progress}% complete",
|
|
"shell.progressAriaLabel": "Project progress",
|
|
"shell.accountMenuAriaLabel": "Open account menu for {name}",
|
|
"account.signOut": "Sign out",
|
|
"account.signingOut": "Signing out",
|
|
"account.signOutError": "Could not sign out. Please try again.",
|
|
},
|
|
dashboard: {
|
|
"title": "Dashboard",
|
|
"description": "Track your work performance, revenue and daily status.",
|
|
"stats.netEarnings": "Net earnings",
|
|
"stats.activeProjects": "Active projects",
|
|
"stats.completedTasks": "Completed tasks",
|
|
"stats.averageMood": "Average mood",
|
|
"sections.financeSummary": "Income / expense summary",
|
|
"sections.moodTrend": "Mood & energy trend",
|
|
"sections.recentProjects": "Recent projects",
|
|
"sections.recentClients": "Recent clients",
|
|
"empty.finance": "No financial data in this date range.",
|
|
"empty.journal": "No journal data in this date range.",
|
|
"empty.projects": "No projects yet.",
|
|
"empty.clients": "No clients yet.",
|
|
"filters.range": "Date range",
|
|
"filters.today": "Today",
|
|
"filters.thisWeek": "This week",
|
|
"filters.thisMonth": "This month",
|
|
},
|
|
clients: {
|
|
"title": "Clients",
|
|
"description": "Manage client relationships, projects and follow-ups.",
|
|
"actions.add": "Add client",
|
|
"fields.name": "Client name",
|
|
"fields.email": "Email",
|
|
},
|
|
projects: {
|
|
"title": "Projects",
|
|
"description": "Track project status, deadlines and client relationships.",
|
|
"actions.add": "Add project",
|
|
"actions.risk": "AI risk analysis",
|
|
"stats.active": "Active projects",
|
|
"stats.progress": "Average progress",
|
|
"stats.budget": "Total budget",
|
|
"fields.name": "Project name",
|
|
"fields.description": "Description",
|
|
},
|
|
tasks: {
|
|
"title": "Tasks",
|
|
"description": "Manage work items, priorities and project relationships.",
|
|
"actions.add": "Add task",
|
|
"view.kanban": "Kanban",
|
|
"view.list": "List",
|
|
"fields.title": "Task title",
|
|
"fields.description": "Description",
|
|
},
|
|
calendar: {
|
|
"title": "Calendar",
|
|
"description": "Plan meetings, focus time and deadlines.",
|
|
"actions.add": "Add event",
|
|
"event.title": "Event",
|
|
},
|
|
finance: {
|
|
"title": "Finance",
|
|
"description": "Track income, expenses, payment status and project/client links.",
|
|
"actions.add": "Add transaction",
|
|
"actions.ai": "AI analysis",
|
|
},
|
|
journal: {
|
|
"title": "Journal",
|
|
"description": "Track mood, energy and work notes.",
|
|
"actions.add": "Add journal entry",
|
|
"fields.note": "Note",
|
|
},
|
|
chat: {
|
|
"title": "Chat",
|
|
"description": "Have contextual AI assistant conversations with your work data.",
|
|
"actions.new": "New chat",
|
|
"errors.invalid": "Chat request is invalid.",
|
|
},
|
|
settings: {
|
|
"title": "Settings",
|
|
"language.title": "Languages and translations",
|
|
"language.default": "Default language",
|
|
},
|
|
portal: {
|
|
"dashboard.title": "Client dashboard",
|
|
"dashboard.activeProjects": "Active projects",
|
|
"dashboard.completed": "Completed",
|
|
"dashboard.averageProgress": "Average progress",
|
|
"dashboard.allProjects": "All your projects",
|
|
"projects.title": "Your projects",
|
|
"projects.empty": "No projects have been assigned to you yet.",
|
|
"tasks.title": "Completed tasks",
|
|
"tasks.empty": "No shared tasks yet.",
|
|
"revisions.title": "Revision requests",
|
|
"revisions.mine": "My revision requests",
|
|
"revisions.empty": "You have not created a revision request yet.",
|
|
"actions.requestRevision": "Request revision",
|
|
"actions.noRevisionQuota": "No revision quota left",
|
|
"actions.sendRequest": "Send request",
|
|
"actions.cancel": "Cancel",
|
|
"actions.newRequest": "Create new request",
|
|
"labels.delivery": "Delivery",
|
|
"labels.deadline": "Due",
|
|
"labels.progress": "Progress",
|
|
"labels.project": "Project",
|
|
"labels.remainingQuota": "Remaining quota",
|
|
"labels.unlimited": "Unlimited",
|
|
"tabs.overview": "Overview",
|
|
"tabs.plan": "Plan & stages",
|
|
"tabs.revisions": "Revisions",
|
|
"sections.progress": "Progress",
|
|
"sections.doneTasks": "Completed work",
|
|
"empty.tasks": "No tasks to list.",
|
|
"empty.plan": "No plan has been uploaded yet.",
|
|
"empty.revisions": "You have not created a revision request yet.",
|
|
"revision.title": "New revision request",
|
|
"revision.pendingWarning": "You currently have {count} unresolved revision requests. Are you sure you want to add another?",
|
|
"revision.descriptionLabel": "Describe the changes you would like in detail",
|
|
"revision.descriptionPlaceholder": "Could this section be blue? Also, let's update the copy...",
|
|
"revision.success": "Your revision request has been sent.",
|
|
"revision.error": "Could not create revision request.",
|
|
"status.project.active": "Active",
|
|
"status.project.completed": "Completed",
|
|
"status.project.waiting": "Waiting",
|
|
"status.task.todo": "Waiting",
|
|
"status.task.inProgress": "In progress",
|
|
"status.task.done": "Completed",
|
|
"status.revision.pending": "Waiting",
|
|
"status.revision.inProgress": "In progress",
|
|
"status.revision.completed": "Completed",
|
|
"status.revision.rejected": "Rejected",
|
|
},
|
|
status: {
|
|
"project.active": "Active",
|
|
"project.completed": "Completed",
|
|
"task.todo": "To do",
|
|
"task.done": "Done",
|
|
},
|
|
validation: {
|
|
"required": "This field is required.",
|
|
"invalidLocale": "Locale code is invalid.",
|
|
"unsupportedLocale": "This language is not supported.",
|
|
},
|
|
api: {
|
|
"errors.unauthenticated": "A valid session is required.",
|
|
"errors.forbidden": "You are not allowed to perform this action.",
|
|
},
|
|
} as const satisfies TranslationCatalog;
|