messages/en.json | 887 +++++++ messages/ja.json | 887 +++++++ messages/translation-todo.json | 2718 ++++++++++++++++++++ next.config.mjs | 5 +- package.json | 7 +- src/app/(external)/page.tsx | 4 +- src/app/(main)/auth/_components/login-form.tsx | 4 +- src/app/(main)/auth/_components/register-form.tsx | 4 +- src/app/(main)/auth/v1/login/page.tsx | 10 +- src/app/(main)/auth/v1/register/page.tsx | 10 +- src/app/(main)/auth/v2/layout.tsx | 12 +- src/app/(main)/auth/v2/login/page.tsx | 8 +- src/app/(main)/auth/v2/register/page.tsx | 8 +- .../chat/_components/chat-conversation-list.tsx | 6 +- src/app/(main)/chat/_components/chat-header.tsx | 12 +- .../chat/_components/chat-profile-details.tsx | 40 +- src/app/(main)/chat/_components/chat-sidebar.tsx | 6 +- src/app/(main)/chat/_components/chat-thread.tsx | 41 +- .../analytics-actions-manager-queue.tsx | 40 +- .../analytics-drivers-coverage-triage.tsx | 18 +- .../analytics-drivers-forecast-target.tsx | 12 +- .../_components/analytics-overview.tsx | 19 +- .../(legacy)/crm-v1/_components/insight-cards.tsx | 12 +- .../crm-v1/_components/operational-cards.tsx | 10 +- .../(legacy)/crm-v1/_components/overview-cards.tsx | 24 +- .../_components/recent-leads-table/table.tsx | 20 +- .../_components/chart-area-interactive.tsx | 24 +- .../_components/proposal-sections-table/table.tsx | 24 +- .../default-v1/_components/section-cards.tsx | 18 +- .../finance-v1/_components/card-overview.tsx | 32 +- .../finance-v1/_components/cash-flow-overview.tsx | 20 +- .../finance-v1/_components/income-reliability.tsx | 18 +- .../_components/kpis/monthly-cash-flow.tsx | 4 +- .../finance-v1/_components/kpis/net-worth.tsx | 8 +- .../_components/kpis/primary-account.tsx | 8 +- .../finance-v1/_components/kpis/savings-rate.tsx | 8 +- .../finance-v1/_components/spending-breakdown.tsx | 6 +- .../(main)/dashboard/(legacy)/finance-v1/page.tsx | 10 +- src/app/(main)/dashboard/[...not-found]/page.tsx | 6 +- .../_components/sidebar/layout-controls.tsx | 74 +- .../_components/sidebar/nav-documents.tsx | 6 +- .../dashboard/_components/sidebar/nav-main.tsx | 8 +- .../_components/sidebar/search-dialog.tsx | 6 +- .../_components/sidebar/sidebar-support-card.tsx | 6 +- .../academy/_components/assignment-status.tsx | 4 +- .../academy/_components/class-schedule.tsx | 34 +- .../dashboard/academy/_components/kpi-cards.tsx | 18 +- .../academy/_components/performance-highlights.tsx | 4 +- .../academy/_components/upcoming-events.tsx | 4 +- src/app/(main)/dashboard/academy/page.tsx | 6 +- .../analytics/_components/analytics-kpi-strip.tsx | 22 +- .../analytics/_components/analytics-toolbar.tsx | 16 +- .../analytics/_components/realtime-visitors.tsx | 16 +- .../dashboard/analytics/_components/top-pages.tsx | 10 +- .../analytics/_components/top-traffic-sources.tsx | 10 +- .../analytics/_components/traffic-quality.tsx | 4 +- src/app/(main)/dashboard/analytics/page.tsx | 24 +- .../dashboard/calendar/_components/calendar.tsx | 4 +- src/app/(main)/dashboard/chat/page.tsx | 10 +- src/app/(main)/dashboard/coming-soon/page.tsx | 6 +- .../(main)/dashboard/crm/_components/kpi-cards.tsx | 22 +- .../crm/_components/opportunities-section.tsx | 8 +- .../crm/_components/pipeline-activity.tsx | 20 +- .../dashboard/crm/_components/task-reminders.tsx | 12 +- .../dashboard/default/_components/metric-cards.tsx | 18 +- .../default/_components/performance-overview.tsx | 26 +- .../_components/recent-customers-table/table.tsx | 14 +- .../default/_components/subscriber-overview.tsx | 6 +- .../ecommerce/_components/customer-reviews.tsx | 18 +- .../dashboard/ecommerce/_components/inventory.tsx | 4 +- .../dashboard/ecommerce/_components/kpi-strip.tsx | 30 +- .../ecommerce/_components/recent-orders.tsx | 8 +- .../ecommerce/_components/store-traffic.tsx | 6 +- .../ecommerce/_components/top-products.tsx | 14 +- .../ecommerce/_components/traffic-sources.tsx | 6 +- src/app/(main)/dashboard/ecommerce/page.tsx | 26 +- .../_components/balance-distribution-card.tsx | 4 +- .../finance/_components/finance-notification.tsx | 8 +- .../finance/_components/income-breakdown.tsx | 10 +- .../finance/_components/overview-kpis.tsx | 18 +- .../finance/_components/quick-actions.tsx | 10 +- .../_components/transactions-overview-card.tsx | 10 +- .../finance/_components/upcoming-transactions.tsx | 4 +- .../dashboard/finance/_components/wallet.tsx | 6 +- src/app/(main)/dashboard/finance/page.tsx | 16 +- .../_components/infrastructure-header.tsx | 12 +- .../_components/project-environments.tsx | 19 +- .../invoice/_components/client-selector.tsx | 4 +- .../invoice/_components/invoice-adjustments.tsx | 8 +- .../invoice/_components/invoice-details.tsx | 4 +- .../dashboard/invoice/_components/invoice-form.tsx | 8 +- .../invoice/_components/invoice-items.tsx | 15 +- .../invoice/_components/invoice-paper.tsx | 24 +- .../invoice/_components/invoice-preview.tsx | 4 +- src/app/(main)/dashboard/invoice/page.tsx | 6 +- .../(main)/dashboard/kanban/_components/kanban.tsx | 6 +- src/app/(main)/dashboard/layout.tsx | 4 +- .../dashboard/logistics/_components/logistics.tsx | 4 +- .../logistics/_components/shipment-details.tsx | 36 +- .../logistics/_components/shipment-list.tsx | 19 +- .../logistics/_components/shipment-route-map.tsx | 4 +- src/app/(main)/dashboard/mail/page.tsx | 10 +- .../productivity/_components/focus-card.tsx | 8 +- .../productivity/_components/projects-section.tsx | 12 +- .../productivity/_components/quick-actions.tsx | 4 +- .../productivity/_components/quote-card.tsx | 6 +- .../productivity/_components/recent-notes-card.tsx | 6 +- .../productivity/_components/tasks-section.tsx | 12 +- .../_components/weekly-summary-card.tsx | 10 +- src/app/(main)/dashboard/productivity/page.tsx | 6 +- .../roles/_components/roles-table/table.tsx | 4 +- .../(main)/dashboard/roles/_components/roles.tsx | 58 +- .../dashboard/tasks/_components/tasks-toolbar.tsx | 6 +- .../(main)/dashboard/tasks/_components/tasks.tsx | 10 +- src/app/(main)/dashboard/tasks/page.tsx | 6 +- .../dashboard/users/_components/users-table.tsx | 4 +- .../(main)/dashboard/users/_components/users.tsx | 22 +- src/app/(main)/mail/_components/mail-inbox.tsx | 6 +- src/app/(main)/mail/_components/mail-sidebar.tsx | 6 +- src/app/(main)/mail/_components/mail-view.tsx | 34 +- src/app/(main)/mail/_components/mail.tsx | 9 +- src/app/(main)/unauthorized/page.tsx | 9 +- src/app/layout.tsx | 7 +- src/app/not-found.tsx | 8 +- src/components/ui/breadcrumb.tsx | 7 +- src/components/ui/carousel.tsx | 7 +- src/components/ui/pagination.tsx | 13 +- src/components/ui/sidebar.tsx | 14 +- src/components/ui/spinner.tsx | 4 +- src/i18n/request.ts | 11 + 130 files changed, 5448 insertions(+), 674 deletions(-) diff --git a/messages/en.json b/messages/en.json new file mode 100644 index 0000000..c6fe99b --- /dev/null +++ b/messages/en.json @@ -0,0 +1,887 @@ +{ + "analytics_actions_manager_queue": { + "3_deals": "3 Deals", + "actionable_deals": "Actionable deals", + "coach": "Coach", + "coach_queue": "Coach queue", + "escalate": "Escalate", + "escalate_coach_and_reforecast_before_com": "Escalate, coach, and reforecast before commit call", + "intervention_mix": "Intervention mix", + "leila_zhang_3_deals": "Leila Zhang · 3 deals", + "manager_action_queue": "Manager Action Queue", + "manager_focus": "Manager focus", + "median_risk": "Median risk", + "next_interventions": "Next interventions", + "no_action_monitor": "No-action monitor", + "owners_engaged": "Owners engaged", + "primary_owner": "Primary owner", + "reforecast": "Reforecast", + "revenue_in_play": "Revenue in play", + "stale_pipeline": "Stale pipeline", + "this_forecast_cycle": "This forecast cycle" + }, + "analytics_actions_risk_ledger": { + "accounts_under_pressure_with_blocker_nex": "Accounts under pressure with blocker, next action, and owner responsibility.", + "close_date_already_exceeded": "Close date already exceeded", + "critical_accounts": "Critical accounts", + "current_filter_window": "Current filter window", + "escalations_due": "Escalations due", + "median_inactivity": "Median inactivity", + "next_7_days": "Next 7 days", + "overdue_revenue": "Overdue revenue", + "revenue_risk_ledger": "Revenue Risk Ledger", + "risk_ladder": "Risk Ladder", + "risk_ladder_80_current_window": "Risk Ladder >= 80 (current window)" + }, + "analytics_drivers_coverage_triage": { + "1_9x_3_0x": "1.9x / 3.0x", + "4_deals_eta_10d": "4 deals • ETA 10d", + "at_risk": "At Risk", + "coverage_below_target_prioritize_qualifi": "Coverage below target. Prioritize qualified volume and shorter cycle time.", + "coverage_triage": "Coverage Triage", + "decision_ladder_for_this_forecast_cycle": "Decision ladder for this forecast cycle", + "gap_222_930": "Gap $222,930", + "open_top_5_deals": "Open top 5 deals" + }, + "analytics_drivers_forecast_target": { + "12_week_trend_with_attainment_context": "12-week trend with attainment context", + "attainment": "Attainment", + "forecast_confidence": "Forecast Confidence", + "forecast_vs_target": "Forecast vs Target", + "weighted_pipeline": "Weighted Pipeline" + }, + "analytics_kpi_strip": { + "conversion_rate": "Conversion Rate", + "engagement_rate": "Engagement Rate", + "last_4_weeks": "last 4 weeks", + "pageviews": "Pageviews", + "sessions": "Sessions", + "unique_visitors": "Unique Visitors" + }, + "analytics_overview": { + "core_risk_signals_vs_previous_period": "Core risk signals vs previous period", + "filters": "Filters", + "previous_1_141_000": "Previous $1,141,000", + "revenue": "Revenue", + "risk_ladder_30": "Risk Ladder 30", + "risk_summary": "Risk summary", + "selected_range": "Selected range" + }, + "analytics_toolbar": { + "analytics_actions": "Analytics actions", + "last_3_months": "Last 3 months", + "last_4_weeks": "Last 4 weeks", + "last_7_days": "Last 7 days", + "more_analytics_actions": "More analytics actions", + "select_range": "Select range", + "year_to_date": "Year to date" + }, + "assignment_status": { + "assignment_status": "Assignment Status" + }, + "balance_distribution_card": { + "account_allocation": "Account Allocation" + }, + "breadcrumb": { + "breadcrumb": "breadcrumb", + "more": "More" + }, + "calendar": { + "today": "Today" + }, + "card_overview": { + "1_of_4_cards_added_overview_of_your_prim": "1 of 4 cards added · Overview of your primary card and upcoming payments", + "21st_monthly": "21st monthly", + "add_card": "Add Card", + "arham_khan": "Arham Khan", + "available_balance": "Available Balance", + "billing_cycle": "Billing cycle", + "card_limit": "Card Limit", + "card_type": "Card type", + "cvv": "CVV", + "manage_card": "Manage Card", + "my_card": "My Card", + "upcoming_payments": "Upcoming Payments", + "valid_thru": "Valid Thru", + "view_all_payments": "View All Payments", + "virtual": "Virtual" + }, + "carousel": { + "next_slide": "Next slide", + "previous_slide": "Previous slide" + }, + "cash_flow_overview": { + "cash_flow_overview": "Cash Flow Overview", + "expenses": "Expenses", + "income": "Income", + "last_6_months": "Last 6 Months", + "monthly_income_and_expenses_with_net_cas": "Monthly income and expenses with net cash impact.", + "select_period": "Select period", + "this_month": "This Month", + "this_year": "This Year", + "year_to_date": "Year to Date" + }, + "chart_area_interactive": { + "last_3_months": "Last 3 months", + "last_30_days": "Last 30 days", + "last_7_days": "Last 7 days", + "select_a_value": "Select a value", + "total_for_the_last_3_months": "Total for the last 3 months", + "total_visitors": "Total Visitors" + }, + "chat_conversation_list": { + "closed": "Closed", + "inbox": "Inbox" + }, + "chat_header": { + "new_conversation": "New conversation", + "notifications": "Notifications", + "search_conversations": "Search conversations...", + "settings": "Settings", + "studio_chat": "Studio Chat" + }, + "chat_profile_details": { + "activity": "Activity", + "call": "Call", + "close_profile": "Close profile", + "company": "Company", + "copy_link": "Copy link", + "details": "Details", + "email": "Email", + "files": "Files", + "location": "Location", + "more": "More", + "phone": "Phone", + "qualified_since": "Qualified since", + "role": "Role", + "schedule": "Schedule", + "stage": "Stage", + "tags": "Tags", + "timezone": "Timezone", + "website": "Website" + }, + "chat_sidebar": { + "channels": "Channels", + "views": "Views" + }, + "chat_thread": { + "ai_assist": "AI assist", + "attach_file": "Attach file", + "block_contact": "Block contact", + "call": "Call", + "emoji": "Emoji", + "format": "Format", + "insert_link": "Insert link", + "internal_note": "Internal note", + "may_6_2026": "May 6, 2026", + "more_actions": "More actions", + "reply": "Reply", + "send": "Send", + "snooze": "Snooze", + "tag": "Tag", + "type_your_message": "Type your message...", + "write_an_internal_note": "Write an internal note..." + }, + "class_schedule": { + "cancelled": "Cancelled", + "class_schedule": "Class Schedule", + "computer_science": "Computer Science", + "english_literature": "English Literature", + "grade_11a_room_1_08": "Grade 11A • Room 1.08", + "grade_11a_room_2_14": "Grade 11A • Room 2.14", + "grade_11b_computing_lab": "Grade 11B • Computing Lab", + "grade_11b_seminar_room_3": "Grade 11B • Seminar Room 3", + "grade_11c_physics_lab": "Grade 11C • Physics Lab", + "in_progress": "In Progress", + "modern_european_history": "Modern European History", + "physics": "Physics", + "pure_mathematics": "Pure Mathematics", + "upcoming": "Upcoming" + }, + "client_selector": { + "billed_to": "Billed To" + }, + "columns": { + "actions": "Actions", + "archive": "Archive", + "archive_role": "Archive role", + "assign": "Assign", + "assign_reviewer": "Assign reviewer", + "capabilities": "Capabilities", + "contact_customer": "Contact customer", + "copy_order_id": "Copy order ID", + "cover_page": "Cover Page", + "date": "Date", + "delete": "Delete", + "design": "Design", + "done": "Done", + "drag_to_reorder": "Drag to reorder", + "duplicate_role": "Duplicate role", + "eddie_lake": "Eddie Lake", + "edit": "Edit", + "edit_opportunity": "Edit opportunity", + "edit_role": "Edit role", + "emily_whalen": "Emily Whalen", + "executive_summary": "Executive Summary", + "favorite": "Favorite", + "focus_documents": "Focus Documents", + "header": "Header", + "in_progress": "In Progress", + "jamik_tashpulatov": "Jamik Tashpulatov", + "labels": "Labels", + "limit": "Limit", + "make_a_copy": "Make a copy", + "manage_members": "Manage members", + "narrative": "Narrative", + "not_started": "Not Started", + "open_menu": "Open menu", + "open_order_actions": "Open order actions", + "order_actions": "Order Actions", + "review_permissions": "Review permissions", + "reviewer": "Reviewer", + "select_a_reviewer": "Select a reviewer", + "select_a_status": "Select a status", + "select_a_type": "Select a type", + "select_all": "Select all", + "select_all_customers_on_this_page": "Select all customers on this page", + "select_all_opportunities": "Select all opportunities", + "select_all_orders": "Select all orders", + "select_row": "Select row", + "showing_total_visitors_for_the_last_6_mo": "Showing total visitors for the last 6 months", + "status": "Status", + "submit": "Submit", + "table_of_contents": "Table of Contents", + "target": "Target", + "technical_approach": "Technical Approach", + "total": "Total", + "type": "Type", + "view": "View", + "view_details": "View details", + "view_order": "View order" + }, + "customer_reviews": { + "12_8k_reviews": "12.8K reviews", + "4_6_average_rating": "4.6 average rating", + "customers_reviewed_this_month": "Customers reviewed this month", + "melody_macy": "Melody Macy", + "next_review": "Next review", + "previous_review": "Previous review", + "reviews": "Reviews", + "the_linen_overshirt_arrived_faster_than": "The linen overshirt arrived faster than expected and the fit was exactly right." + }, + "finance_notification": { + "credit_score_updated": "Credit score updated", + "view_details": "View details", + "your_score_increased_by_14_points_to_782": "Your score increased by 14 points to 782." + }, + "focus_card": { + "focus": "Focus", + "no_notifications_full_focus": "No notifications · Full focus", + "start": "Start" + }, + "income_breakdown": { + "dividends_and_interest_11": "Dividends and interest · 11%", + "freelance_projects_21": "Freelance projects · 21%", + "income_sources": "Income sources", + "primary_salary_68": "Primary salary · 68%" + }, + "income_reliability": { + "based_on_last_6_months_of_income": "Based on last 6 months of income", + "fixed_income": "Fixed Income", + "fluctuating_sources": "Fluctuating sources", + "high_reliability": "High Reliability", + "how_consistent_your_income_has_been_rece": "How consistent your income has been recently.", + "income_reliability": "Income Reliability", + "recurring_predictable": "Recurring · Predictable", + "variable_income": "Variable Income" + }, + "infrastructure_header": { + "infrastructure_overview": "Infrastructure Overview", + "k": "⌘ K", + "last_updated_30s_ago": "Last updated: 30s ago", + "monitor_environments_server_health_uptim": "Monitor environments, server health, uptime, and resource usage across every project.", + "search_by_name_or_domain": "Search by name or domain..." + }, + "insight_cards": { + "average_progress_78_2_projects_above_tar": "Average progress: 78% · 2 projects above target", + "download_csv": "Download CSV", + "leads_by_source": "Leads by Source", + "project_revenue_vs_target": "Project Revenue vs. Target", + "view_full_report": "View Full Report" + }, + "inventory": { + "inventory": "Inventory" + }, + "invoice_adjustments": { + "adjustments": "Adjustments", + "discount_value": "Discount value", + "value": "Value" + }, + "invoice_details": { + "reference_number": "Reference Number" + }, + "invoice_form": { + "business": "Business", + "invoice": "Invoice", + "payment": "Payment" + }, + "invoice_items": { + "description": "Description", + "invoice_items": "Invoice Items", + "line_total": "Line Total", + "line_total_2": "Line total", + "unit_cost": "Unit cost", + "units": "Units" + }, + "invoice_paper": { + "balance_due": "Balance due", + "bill_to": "Bill to", + "description": "Description", + "from": "From", + "invoice": "Invoice", + "line_total": "Line total", + "net_amount": "Net amount", + "payment_account": "Payment account", + "prepared_for_prompt_processing": "Prepared for prompt processing.", + "unit_cost": "Unit cost", + "units": "Units" + }, + "invoice_preview": { + "preview": "Preview" + }, + "kanban": { + "open_add_task_menu": "Open add task menu", + "search_tasks": "Search tasks" + }, + "kpi_cards": { + "1_in_progress_3_upcoming_1_cancelled": "1 in progress · 3 upcoming · 1 cancelled", + "63_pending_18_overdue": "63 pending · 18 overdue", + "across_5_grade_11_sections": "across 5 Grade 11 sections", + "assignments": "Assignments", + "avg_attendance": "Avg. Attendance", + "classes_today": "Classes Today", + "keep_tabs_on_lead_quality_open_opportuni": "Keep tabs on lead quality, open opportunities, and conversion rates across the current sales cycle.", + "last_month": "last month", + "lead_pipeline_value": "Lead Pipeline Value", + "lead_to_deal_rate": "Lead-to-Deal Rate", + "open_opportunities": "Open Opportunities", + "pipeline_overview": "Pipeline Overview", + "qualified_lead_rate": "Qualified Lead Rate", + "students_taught": "Students Taught", + "vs_last_month": "vs last month" + }, + "kpi_strip": { + "2_4_pts": "+2.4 pts", + "average_order": "Average Order", + "customer_growth": "Customer Growth", + "return_requests": "Return Requests", + "sales_overview": "Sales Overview", + "stock_accuracy": "Stock Accuracy", + "total_orders": "Total Orders", + "total_sales": "Total Sales", + "vs_last_audit": "vs last audit", + "vs_last_month": "vs last month", + "vs_last_week": "vs last week" + }, + "layout_controls": { + "centered": "Centered", + "customize_your_dashboard_layout_preferen": "Customize your dashboard layout preferences.", + "dark": "Dark", + "floating": "Floating", + "fonts": "Fonts", + "full_width": "Full Width", + "icon": "Icon", + "inset": "Inset", + "light": "Light", + "navbar_behavior": "Navbar Behavior", + "offcanvas": "OffCanvas", + "page_layout": "Page Layout", + "preferences": "Preferences", + "preset": "Preset", + "restore_defaults": "Restore Defaults", + "scroll": "Scroll", + "select_font": "Select font", + "sidebar": "Sidebar", + "sidebar_collapse_mode": "Sidebar Collapse Mode", + "sidebar_style": "Sidebar Style", + "sticky": "Sticky", + "system": "System", + "theme_mode": "Theme Mode", + "theme_preset": "Theme Preset", + "toggle_centered": "Toggle centered", + "toggle_dark": "Toggle dark", + "toggle_floating": "Toggle floating", + "toggle_full_width": "Toggle full-width", + "toggle_icon": "Toggle icon", + "toggle_inset": "Toggle inset", + "toggle_light": "Toggle light", + "toggle_offcanvas": "Toggle offcanvas", + "toggle_scroll": "Toggle scroll", + "toggle_sidebar": "Toggle sidebar", + "toggle_sticky": "Toggle sticky", + "toggle_system": "Toggle system" + }, + "layout": { + "check_out_the_docs_or_open_an_issue_on_g": "Check out the docs or open an issue on GitHub, community support is just a click away.", + "clone_the_repo_install_dependencies_and": "Clone the repo, install dependencies, and your dashboard is live in minutes.", + "design_build_launch_repeat": "Design. Build. Launch. Repeat.", + "need_help": "Need help?", + "open_github_repository": "Open GitHub repository", + "ready_to_launch": "Ready to launch?" + }, + "login_form": { + "login": "Login" + }, + "logistics": { + "selected_shipment_details_and_route_map": "Selected shipment details and route map." + }, + "mail_inbox": { + "inbox": "Inbox", + "search": "Search..." + }, + "mail_sidebar": { + "folders": "Folders", + "new_email": "New email" + }, + "mail_view": { + "archive": "Archive", + "close_message": "Close message", + "more_actions": "More actions", + "move_to_trash": "Move to trash", + "next_message": "Next message", + "pin_thread": "Pin thread", + "previous_message": "Previous message", + "reply": "Reply" + }, + "mail": { + "loading_mail": "Loading mail...", + "mail_message": "Mail message", + "read_the_selected_email_message": "Read the selected email message" + }, + "metric_cards": { + "acquisition_needs_attention": "Acquisition needs attention", + "active_accounts": "Active Accounts", + "engagement_exceeds_targets": "Engagement exceeds targets", + "growth_rate": "Growth Rate", + "meets_growth_projections": "Meets growth projections", + "new_customers": "New Customers", + "total_revenue": "Total Revenue", + "visitors_for_the_last_6_months": "Visitors for the last 6 months" + }, + "monthly_cash_flow": { + "this_month_net": "This month · Net" + }, + "nav_documents": { + "documents": "Documents", + "more": "More" + }, + "nav_main": { + "inbox": "Inbox", + "quick_create": "Quick Create" + }, + "net_worth": { + "3_680_mom": "+$3,680 MoM", + "across_all_linked_accounts": "Across all linked accounts", + "this_month": "This month" + }, + "not_found": { + "go_back_home": "Go back home", + "page_not_found": "Page not found.", + "the_page_you_are_looking_for_could_not_b": "The page you are looking for could not be found." + }, + "operational_cards": { + "action_items": "Action Items", + "leads_increased_by_18_2_since_last_month": "Leads increased by 18.2% since last month.", + "sales_by_region": "Sales by Region", + "sales_pipeline": "Sales Pipeline" + }, + "opportunities_section": { + "recent_opportunities": "Recent Opportunities", + "search_deals": "Search deals...", + "track_qualified_leads_moving_through_dis": "Track qualified leads moving through discovery, proposal, and closing stages." + }, + "overview_cards": { + "35_growth_since_last_year": "+35% growth since last year", + "last_6_months": "Last 6 Months", + "last_month": "Last Month", + "new_leads": "New Leads", + "projects_won": "Projects Won", + "proposals_sent": "Proposals Sent", + "revenue": "Revenue", + "revenue_growth": "Revenue Growth", + "year_to_date_ytd": "Year to Date (YTD)" + }, + "overview_kpis": { + "124_more_than_last_month": "$124 more than last month", + "410_above_your_30_day_average": "$410 above your 30-day average", + "9_8k_vs_last_month": "+$9.8K vs last month", + "available_cash": "Available cash", + "monthly_spend": "Monthly spend", + "net_worth": "Net worth", + "savings_rate": "Savings rate", + "up_from_25_6_last_month": "Up from 25.6% last month" + }, + "page": { + "academy_dashboard": "Academy Dashboard", + "accounts": "Accounts", + "accounts_view_coming_soon": "Accounts view coming soon.", + "acquisition": "Acquisition", + "acquisition_view_coming_soon": "Acquisition view coming soon.", + "activity": "Activity", + "add_invoice_details_review_the_preview_a": "Add invoice details, review the preview, and send it to your client.", + "all_channels": "All Channels", + "audience": "Audience", + "audience_view_coming_soon": "Audience view coming soon.", + "chat_preview": "Chat preview", + "coming_soon": "Coming Soon", + "conversions": "Conversions", + "conversions_view_coming_soon": "Conversions view coming soon.", + "create_new_invoice": "Create New Invoice", + "create_your_account": "Create your account", + "dashboard": "Dashboard", + "engagement": "Engagement", + "engagement_view_coming_soon": "Engagement view coming soon.", + "fill_in_your_details_below_we_promise_no": "Fill in your details below. We promise not to quiz you about your first pet's name (this time).", + "go_to_homepage": "Go to Homepage", + "good_morning_arham": "Good morning, Arham.", + "good_morning_teacher_heres_a_quick_overv": "Good morning, Teacher. Here's a quick overview of today's activity.", + "hello_again": "Hello again", + "hello_aiy": "Hello, Aiy", + "heres_a_list_of_your_tasks_for_this_mont": "Here's a list of your tasks for this month!", + "insights": "Insights", + "last_30_days": "Last 30 Days", + "last_month": "Last Month", + "let_apos_s_make_today_productive_and_mea": "Let's make today productive and meaningful.", + "login": "Login", + "login_to_continue": "Login to continue", + "login_to_your_account": "Login to your account", + "mail_preview": "Mail preview", + "marketplace": "Marketplace", + "monitor_traffic_engagement_and_conversio": "Monitor traffic, engagement, and conversion performance in one view.", + "online_store": "Online Store", + "open_chat_in_new_tab": "Open chat in new tab", + "open_mail_in_new_tab": "Open mail in new tab", + "or_continue_with": "Or continue with", + "overview": "Overview", + "page_not_found": "Page not found.", + "personal_finances": "Personal Finances", + "please_enter_your_details_to_login": "Please enter your details to login.", + "please_enter_your_details_to_register": "Please enter your details to register.", + "register": "Register", + "retail": "Retail", + "social": "Social", + "store_overview": "Store Overview", + "this_iframe_shows_the_standalone_chat_sc": "This iframe shows the standalone chat screen. Open it in full screen for a better view.", + "this_iframe_shows_the_standalone_mail_sc": "This iframe shows the standalone mail screen. Open it in full screen for a better view.", + "this_month": "This Month", + "this_page_is_under_development_and_will": "This page is under development and will be available in future updates.", + "this_section_will_be_added_in_future_upd": "This section will be added in future updates.", + "transactions": "Transactions", + "transactions_view_coming_soon": "Transactions view coming soon.", + "unauthorized_access": "Unauthorized Access", + "updated_5_min_ago": "Updated 5 min ago", + "utilities": "Utilities", + "welcome": "Welcome!", + "welcome_back": "Welcome back!", + "welcome_back_enter_your_email_and_passwo": "Welcome back. Enter your email and password, let's hope you remember them this time.", + "year_to_date": "Year to Date", + "you_apos_re_in_the_right_place": "You're in the right place.", + "you_do_not_have_permission_to_view_the_r": "You do not have permission to view the requested content. Please contact the site administrator if you believe this is an error." + }, + "pagination": { + "go_to_next_page": "Go to next page", + "go_to_previous_page": "Go to previous page", + "more_pages": "More pages", + "pagination": "pagination" + }, + "performance_highlights": { + "performance_highlights": "Performance Highlights" + }, + "performance_overview": { + "3_months": "3 months", + "all_segments": "All segments", + "customer_activity": "Customer Activity", + "customer_activity_for_the_last_3_months": "Customer activity for the last 3 months", + "last_3_months": "Last 3 months", + "organic": "Organic", + "paid": "Paid", + "period": "Period", + "segments": "Segments", + "view_report": "View report" + }, + "pipeline_activity": { + "discovery_calls_booked": "Discovery Calls Booked", + "last_12_months": "Last 12 months", + "last_30_days": "Last 30 days", + "last_quarter": "Last quarter", + "leads": "leads", + "meetings": "meetings", + "qualified_lead_flow": "Qualified Lead Flow", + "select_range": "Select range", + "total_qualified_leads_captured_over_the": "Total qualified leads captured over the last 12 months." + }, + "primary_account": { + "available_balance": "Available balance", + "pay": "Pay", + "request": "Request" + }, + "project_environments": { + "environment": "Environment", + "health": "Health", + "latency": "Latency", + "no_environments_in_this_project": "No environments in this project", + "platform": "Platform", + "resources": "Resources", + "server": "Server", + "uptime": "Uptime" + }, + "projects_section": { + "active": "Active", + "completed": "Completed", + "planning": "Planning", + "projects": "Projects" + }, + "quick_actions": { + "quick_actions": "Quick Actions", + "quick_transfer": "Quick Transfer", + "send": "Send", + "shortcuts": "Shortcuts", + "usd": "USD" + }, + "quote_card": { + "keep_showing_up_you_apos_ve_got_this": "Keep showing up. You've got this.", + "small_consistent_actions_lead_to_big_res": "Small, consistent actions lead to big results." + }, + "realtime_visitors": { + "canada": "Canada", + "india": "India", + "live": "Live", + "per_minute": "per minute", + "realtime_visitors": "Realtime Visitors", + "united_kingdom": "United Kingdom", + "united_states": "United States" + }, + "recent_notes_card": { + "recent_notes": "Recent Notes", + "view_all": "View all" + }, + "recent_orders": { + "download_orders": "Download orders", + "open_orders": "Open orders", + "recent_orders": "Recent Orders" + }, + "register_form": { + "register": "Register" + }, + "roles": { + "3_roles_have_unreviewed_permission_chang": "3 roles have unreviewed permission changes.", + "access_reviews": "Access reviews", + "access_reviews_coming_soon": "Access Reviews Coming Soon", + "active": "Active", + "alex_kim": "Alex Kim", + "all": "All", + "chris_lee": "Chris Lee", + "create_role": "Create role", + "custom": "Custom", + "jane_doe": "Jane Doe", + "manage_access_roles_and_permissions_acro": "Manage access roles and permissions across your organization.", + "needs_review": "Needs review", + "owner": "Owner:", + "permission_sets": "Permission sets", + "permission_sets_coming_soon": "Permission Sets Coming Soon", + "review_required": "Review required", + "roles": "Roles", + "roles_permissions": "Roles & Permissions", + "search_roles": "Search roles...", + "status": "Status:", + "system": "System", + "type": "Type:" + }, + "savings_rate": { + "3_5_mom": "+3.5% MoM", + "above_your_average": "Above your average", + "this_month_after_expenses": "This month · After expenses" + }, + "search_dialog": { + "no_results_found": "No results found.", + "search_dashboards_users_and_more": "Search dashboards, users, and more…" + }, + "section_cards": { + "acquisition_needs_attention": "Acquisition needs attention", + "active_accounts": "Active Accounts", + "engagement_exceed_targets": "Engagement exceed targets", + "growth_rate": "Growth Rate", + "meets_growth_projections": "Meets growth projections", + "new_customers": "New Customers", + "total_revenue": "Total Revenue", + "visitors_for_the_last_6_months": "Visitors for the last 6 months" + }, + "shipment_details": { + "activity": "Activity", + "activity_view_coming_soon": "Activity view coming soon.", + "cargo": "Cargo", + "cargo_details": "Cargo details", + "cargo_view_coming_soon": "Cargo view coming soon.", + "copy_shipment_id": "Copy shipment ID", + "documents": "Documents", + "documents_view_coming_soon": "Documents view coming soon.", + "overview": "Overview", + "route": "Route", + "route_view_coming_soon": "Route view coming soon.", + "select_a_shipment_to_view_details": "Select a shipment to view details.", + "status": "Status", + "total_weight": "Total weight", + "transport_mode": "Transport mode" + }, + "shipment_list": { + "all_156": "All (156)", + "cargo": "Cargo", + "delayed_9": "Delayed (9)", + "delivered_98": "Delivered (98)", + "eta": "ETA", + "in_transit_32": "In Transit (32)", + "search_shipments": "Search shipments", + "search_shipments_2": "Search shipments...", + "shipments": "Shipments" + }, + "shipment_route_map": { + "southeast_asia_shipment_region_map": "Southeast Asia shipment region map" + }, + "sidebar_support_card": { + "looking_for_something_more": "Looking for something more?", + "reach_out_on_x": "Reach out on X" + }, + "sidebar": { + "displays_the_mobile_sidebar": "Displays the mobile sidebar.", + "sidebar": "Sidebar", + "toggle_sidebar": "Toggle Sidebar" + }, + "spending_breakdown": { + "expense_distribution_by_category": "Expense distribution by category.", + "spending_breakdown": "Spending Breakdown" + }, + "spinner": { + "loading": "Loading" + }, + "store_traffic": { + "12_9k_visits": "12.9K visits", + "store_traffic": "Store Traffic" + }, + "subscriber_overview": { + "18_426_customers": "18,426 Customers", + "recent_customer_records_with_plan_billin": "Recent customer records with plan, billing, status, and signup activity." + }, + "table": { + "add_section": "Add Section", + "export": "Export", + "focus_documents": "Focus Documents", + "go_to_first_page": "Go to first page", + "go_to_last_page": "Go to last page", + "go_to_next_page": "Go to next page", + "go_to_previous_page": "Go to previous page", + "outline": "Outline", + "recent_leads": "Recent Leads", + "rows_per_page": "Rows per page", + "search_customers": "Search customers...", + "select_a_view": "Select a view", + "toggle_columns": "Toggle columns", + "track_and_manage_your_latest_leads_and_t": "Track and manage your latest leads and their status.", + "view": "View" + }, + "task_reminders": { + "monthly_proposal_goal": "Monthly Proposal Goal", + "product_demo_with_tim": "Product demo with Tim", + "sent": "sent", + "upcoming_meetings": "Upcoming Meetings", + "weblabs_studio": "Weblabs Studio" + }, + "tasks_section": { + "tasks": "Tasks", + "this_week": "This Week", + "today": "Today", + "tomorrow": "Tomorrow" + }, + "tasks_toolbar": { + "filter_tasks": "Filter tasks...", + "toggle_columns": "Toggle columns" + }, + "tasks": { + "go_to_first_page": "Go to first page", + "go_to_last_page": "Go to last page", + "prev": "Prev", + "rows_per_page": "Rows per page" + }, + "top_pages": { + "avg_time": "Avg Time", + "bounce": "Bounce", + "page_performance": "Page Performance", + "views": "Views" + }, + "top_products": { + "73_of_sales": "73% of sales", + "products": "Products", + "sales": "Sales", + "sales_by_category": "Sales by category", + "share": "Share", + "top_products": "Top Products" + }, + "top_traffic_sources": { + "campaigns": "Campaigns", + "referrers": "Referrers", + "sources": "Sources", + "traffic_sources": "Traffic Sources" + }, + "traffic_quality": { + "traffic_quality": "Traffic Quality" + }, + "traffic_sources": { + "14_8k_visits": "14.8K visits", + "traffic_sources": "Traffic Sources" + }, + "transactions_overview_card": { + "monthly": "Monthly", + "spending_overview": "Spending Overview", + "weekly": "Weekly", + "yearly": "Yearly" + }, + "upcoming_events": { + "upcoming_events": "Upcoming Events" + }, + "upcoming_transactions": { + "upcoming_bills_payments": "Upcoming Bills & Payments" + }, + "users_columns": { + "actions": "Actions", + "deactivate_user": "Deactivate user", + "edit_user": "Edit user", + "manage_team": "Manage team", + "resend_invite": "Resend invite", + "select_all_users": "Select all users", + "view_profile": "View profile" + }, + "users_table": { + "rows_per_page": "Rows per page" + }, + "users": { + "grid_view": "Grid view", + "k": "⌘K", + "list_view": "List view", + "manage_your_organization_members_and_the": "Manage your organization members and their access.", + "role": "Role:", + "search_users": "Search users...", + "status": "Status:", + "team": "Team:", + "users": "Users", + "workspace": "Workspace:" + }, + "wallet": { + "air_gapped": "Air-Gapped", + "wallet": "Wallet" + }, + "weekly_summary_card": { + "4_of_6_goals_completed": "4 of 6 goals completed", + "this_week": "This Week", + "view_all": "View all", + "youre_doing_great_keep_the_momentum_goin": "You’re doing great. Keep the momentum going." + } +} diff --git a/messages/ja.json b/messages/ja.json new file mode 100644 index 0000000..c6fe99b --- /dev/null +++ b/messages/ja.json @@ -0,0 +1,887 @@ +{ + "analytics_actions_manager_queue": { + "3_deals": "3 Deals", + "actionable_deals": "Actionable deals", + "coach": "Coach", + "coach_queue": "Coach queue", + "escalate": "Escalate", + "escalate_coach_and_reforecast_before_com": "Escalate, coach, and reforecast before commit call", + "intervention_mix": "Intervention mix", + "leila_zhang_3_deals": "Leila Zhang · 3 deals", + "manager_action_queue": "Manager Action Queue", + "manager_focus": "Manager focus", + "median_risk": "Median risk", + "next_interventions": "Next interventions", + "no_action_monitor": "No-action monitor", + "owners_engaged": "Owners engaged", + "primary_owner": "Primary owner", + "reforecast": "Reforecast", + "revenue_in_play": "Revenue in play", + "stale_pipeline": "Stale pipeline", + "this_forecast_cycle": "This forecast cycle" + }, + "analytics_actions_risk_ledger": { + "accounts_under_pressure_with_blocker_nex": "Accounts under pressure with blocker, next action, and owner responsibility.", + "close_date_already_exceeded": "Close date already exceeded", + "critical_accounts": "Critical accounts", + "current_filter_window": "Current filter window", + "escalations_due": "Escalations due", + "median_inactivity": "Median inactivity", + "next_7_days": "Next 7 days", + "overdue_revenue": "Overdue revenue", + "revenue_risk_ledger": "Revenue Risk Ledger", + "risk_ladder": "Risk Ladder", + "risk_ladder_80_current_window": "Risk Ladder >= 80 (current window)" + }, + "analytics_drivers_coverage_triage": { + "1_9x_3_0x": "1.9x / 3.0x", + "4_deals_eta_10d": "4 deals • ETA 10d", + "at_risk": "At Risk", + "coverage_below_target_prioritize_qualifi": "Coverage below target. Prioritize qualified volume and shorter cycle time.", + "coverage_triage": "Coverage Triage", + "decision_ladder_for_this_forecast_cycle": "Decision ladder for this forecast cycle", + "gap_222_930": "Gap $222,930", + "open_top_5_deals": "Open top 5 deals" + }, + "analytics_drivers_forecast_target": { + "12_week_trend_with_attainment_context": "12-week trend with attainment context", + "attainment": "Attainment", + "forecast_confidence": "Forecast Confidence", + "forecast_vs_target": "Forecast vs Target", + "weighted_pipeline": "Weighted Pipeline" + }, + "analytics_kpi_strip": { + "conversion_rate": "Conversion Rate", + "engagement_rate": "Engagement Rate", + "last_4_weeks": "last 4 weeks", + "pageviews": "Pageviews", + "sessions": "Sessions", + "unique_visitors": "Unique Visitors" + }, + "analytics_overview": { + "core_risk_signals_vs_previous_period": "Core risk signals vs previous period", + "filters": "Filters", + "previous_1_141_000": "Previous $1,141,000", + "revenue": "Revenue", + "risk_ladder_30": "Risk Ladder 30", + "risk_summary": "Risk summary", + "selected_range": "Selected range" + }, + "analytics_toolbar": { + "analytics_actions": "Analytics actions", + "last_3_months": "Last 3 months", + "last_4_weeks": "Last 4 weeks", + "last_7_days": "Last 7 days", + "more_analytics_actions": "More analytics actions", + "select_range": "Select range", + "year_to_date": "Year to date" + }, + "assignment_status": { + "assignment_status": "Assignment Status" + }, + "balance_distribution_card": { + "account_allocation": "Account Allocation" + }, + "breadcrumb": { + "breadcrumb": "breadcrumb", + "more": "More" + }, + "calendar": { + "today": "Today" + }, + "card_overview": { + "1_of_4_cards_added_overview_of_your_prim": "1 of 4 cards added · Overview of your primary card and upcoming payments", + "21st_monthly": "21st monthly", + "add_card": "Add Card", + "arham_khan": "Arham Khan", + "available_balance": "Available Balance", + "billing_cycle": "Billing cycle", + "card_limit": "Card Limit", + "card_type": "Card type", + "cvv": "CVV", + "manage_card": "Manage Card", + "my_card": "My Card", + "upcoming_payments": "Upcoming Payments", + "valid_thru": "Valid Thru", + "view_all_payments": "View All Payments", + "virtual": "Virtual" + }, + "carousel": { + "next_slide": "Next slide", + "previous_slide": "Previous slide" + }, + "cash_flow_overview": { + "cash_flow_overview": "Cash Flow Overview", + "expenses": "Expenses", + "income": "Income", + "last_6_months": "Last 6 Months", + "monthly_income_and_expenses_with_net_cas": "Monthly income and expenses with net cash impact.", + "select_period": "Select period", + "this_month": "This Month", + "this_year": "This Year", + "year_to_date": "Year to Date" + }, + "chart_area_interactive": { + "last_3_months": "Last 3 months", + "last_30_days": "Last 30 days", + "last_7_days": "Last 7 days", + "select_a_value": "Select a value", + "total_for_the_last_3_months": "Total for the last 3 months", + "total_visitors": "Total Visitors" + }, + "chat_conversation_list": { + "closed": "Closed", + "inbox": "Inbox" + }, + "chat_header": { + "new_conversation": "New conversation", + "notifications": "Notifications", + "search_conversations": "Search conversations...", + "settings": "Settings", + "studio_chat": "Studio Chat" + }, + "chat_profile_details": { + "activity": "Activity", + "call": "Call", + "close_profile": "Close profile", + "company": "Company", + "copy_link": "Copy link", + "details": "Details", + "email": "Email", + "files": "Files", + "location": "Location", + "more": "More", + "phone": "Phone", + "qualified_since": "Qualified since", + "role": "Role", + "schedule": "Schedule", + "stage": "Stage", + "tags": "Tags", + "timezone": "Timezone", + "website": "Website" + }, + "chat_sidebar": { + "channels": "Channels", + "views": "Views" + }, + "chat_thread": { + "ai_assist": "AI assist", + "attach_file": "Attach file", + "block_contact": "Block contact", + "call": "Call", + "emoji": "Emoji", + "format": "Format", + "insert_link": "Insert link", + "internal_note": "Internal note", + "may_6_2026": "May 6, 2026", + "more_actions": "More actions", + "reply": "Reply", + "send": "Send", + "snooze": "Snooze", + "tag": "Tag", + "type_your_message": "Type your message...", + "write_an_internal_note": "Write an internal note..." + }, + "class_schedule": { + "cancelled": "Cancelled", + "class_schedule": "Class Schedule", + "computer_science": "Computer Science", + "english_literature": "English Literature", + "grade_11a_room_1_08": "Grade 11A • Room 1.08", + "grade_11a_room_2_14": "Grade 11A • Room 2.14", + "grade_11b_computing_lab": "Grade 11B • Computing Lab", + "grade_11b_seminar_room_3": "Grade 11B • Seminar Room 3", + "grade_11c_physics_lab": "Grade 11C • Physics Lab", + "in_progress": "In Progress", + "modern_european_history": "Modern European History", + "physics": "Physics", + "pure_mathematics": "Pure Mathematics", + "upcoming": "Upcoming" + }, + "client_selector": { + "billed_to": "Billed To" + }, + "columns": { + "actions": "Actions", + "archive": "Archive", + "archive_role": "Archive role", + "assign": "Assign", + "assign_reviewer": "Assign reviewer", + "capabilities": "Capabilities", + "contact_customer": "Contact customer", + "copy_order_id": "Copy order ID", + "cover_page": "Cover Page", + "date": "Date", + "delete": "Delete", + "design": "Design", + "done": "Done", + "drag_to_reorder": "Drag to reorder", + "duplicate_role": "Duplicate role", + "eddie_lake": "Eddie Lake", + "edit": "Edit", + "edit_opportunity": "Edit opportunity", + "edit_role": "Edit role", + "emily_whalen": "Emily Whalen", + "executive_summary": "Executive Summary", + "favorite": "Favorite", + "focus_documents": "Focus Documents", + "header": "Header", + "in_progress": "In Progress", + "jamik_tashpulatov": "Jamik Tashpulatov", + "labels": "Labels", + "limit": "Limit", + "make_a_copy": "Make a copy", + "manage_members": "Manage members", + "narrative": "Narrative", + "not_started": "Not Started", + "open_menu": "Open menu", + "open_order_actions": "Open order actions", + "order_actions": "Order Actions", + "review_permissions": "Review permissions", + "reviewer": "Reviewer", + "select_a_reviewer": "Select a reviewer", + "select_a_status": "Select a status", + "select_a_type": "Select a type", + "select_all": "Select all", + "select_all_customers_on_this_page": "Select all customers on this page", + "select_all_opportunities": "Select all opportunities", + "select_all_orders": "Select all orders", + "select_row": "Select row", + "showing_total_visitors_for_the_last_6_mo": "Showing total visitors for the last 6 months", + "status": "Status", + "submit": "Submit", + "table_of_contents": "Table of Contents", + "target": "Target", + "technical_approach": "Technical Approach", + "total": "Total", + "type": "Type", + "view": "View", + "view_details": "View details", + "view_order": "View order" + }, + "customer_reviews": { + "12_8k_reviews": "12.8K reviews", + "4_6_average_rating": "4.6 average rating", + "customers_reviewed_this_month": "Customers reviewed this month", + "melody_macy": "Melody Macy", + "next_review": "Next review", + "previous_review": "Previous review", + "reviews": "Reviews", + "the_linen_overshirt_arrived_faster_than": "The linen overshirt arrived faster than expected and the fit was exactly right." + }, + "finance_notification": { + "credit_score_updated": "Credit score updated", + "view_details": "View details", + "your_score_increased_by_14_points_to_782": "Your score increased by 14 points to 782." + }, + "focus_card": { + "focus": "Focus", + "no_notifications_full_focus": "No notifications · Full focus", + "start": "Start" + }, + "income_breakdown": { + "dividends_and_interest_11": "Dividends and interest · 11%", + "freelance_projects_21": "Freelance projects · 21%", + "income_sources": "Income sources", + "primary_salary_68": "Primary salary · 68%" + }, + "income_reliability": { + "based_on_last_6_months_of_income": "Based on last 6 months of income", + "fixed_income": "Fixed Income", + "fluctuating_sources": "Fluctuating sources", + "high_reliability": "High Reliability", + "how_consistent_your_income_has_been_rece": "How consistent your income has been recently.", + "income_reliability": "Income Reliability", + "recurring_predictable": "Recurring · Predictable", + "variable_income": "Variable Income" + }, + "infrastructure_header": { + "infrastructure_overview": "Infrastructure Overview", + "k": "⌘ K", + "last_updated_30s_ago": "Last updated: 30s ago", + "monitor_environments_server_health_uptim": "Monitor environments, server health, uptime, and resource usage across every project.", + "search_by_name_or_domain": "Search by name or domain..." + }, + "insight_cards": { + "average_progress_78_2_projects_above_tar": "Average progress: 78% · 2 projects above target", + "download_csv": "Download CSV", + "leads_by_source": "Leads by Source", + "project_revenue_vs_target": "Project Revenue vs. Target", + "view_full_report": "View Full Report" + }, + "inventory": { + "inventory": "Inventory" + }, + "invoice_adjustments": { + "adjustments": "Adjustments", + "discount_value": "Discount value", + "value": "Value" + }, + "invoice_details": { + "reference_number": "Reference Number" + }, + "invoice_form": { + "business": "Business", + "invoice": "Invoice", + "payment": "Payment" + }, + "invoice_items": { + "description": "Description", + "invoice_items": "Invoice Items", + "line_total": "Line Total", + "line_total_2": "Line total", + "unit_cost": "Unit cost", + "units": "Units" + }, + "invoice_paper": { + "balance_due": "Balance due", + "bill_to": "Bill to", + "description": "Description", + "from": "From", + "invoice": "Invoice", + "line_total": "Line total", + "net_amount": "Net amount", + "payment_account": "Payment account", + "prepared_for_prompt_processing": "Prepared for prompt processing.", + "unit_cost": "Unit cost", + "units": "Units" + }, + "invoice_preview": { + "preview": "Preview" + }, + "kanban": { + "open_add_task_menu": "Open add task menu", + "search_tasks": "Search tasks" + }, + "kpi_cards": { + "1_in_progress_3_upcoming_1_cancelled": "1 in progress · 3 upcoming · 1 cancelled", + "63_pending_18_overdue": "63 pending · 18 overdue", + "across_5_grade_11_sections": "across 5 Grade 11 sections", + "assignments": "Assignments", + "avg_attendance": "Avg. Attendance", + "classes_today": "Classes Today", + "keep_tabs_on_lead_quality_open_opportuni": "Keep tabs on lead quality, open opportunities, and conversion rates across the current sales cycle.", + "last_month": "last month", + "lead_pipeline_value": "Lead Pipeline Value", + "lead_to_deal_rate": "Lead-to-Deal Rate", + "open_opportunities": "Open Opportunities", + "pipeline_overview": "Pipeline Overview", + "qualified_lead_rate": "Qualified Lead Rate", + "students_taught": "Students Taught", + "vs_last_month": "vs last month" + }, + "kpi_strip": { + "2_4_pts": "+2.4 pts", + "average_order": "Average Order", + "customer_growth": "Customer Growth", + "return_requests": "Return Requests", + "sales_overview": "Sales Overview", + "stock_accuracy": "Stock Accuracy", + "total_orders": "Total Orders", + "total_sales": "Total Sales", + "vs_last_audit": "vs last audit", + "vs_last_month": "vs last month", + "vs_last_week": "vs last week" + }, + "layout_controls": { + "centered": "Centered", + "customize_your_dashboard_layout_preferen": "Customize your dashboard layout preferences.", + "dark": "Dark", + "floating": "Floating", + "fonts": "Fonts", + "full_width": "Full Width", + "icon": "Icon", + "inset": "Inset", + "light": "Light", + "navbar_behavior": "Navbar Behavior", + "offcanvas": "OffCanvas", + "page_layout": "Page Layout", + "preferences": "Preferences", + "preset": "Preset", + "restore_defaults": "Restore Defaults", + "scroll": "Scroll", + "select_font": "Select font", + "sidebar": "Sidebar", + "sidebar_collapse_mode": "Sidebar Collapse Mode", + "sidebar_style": "Sidebar Style", + "sticky": "Sticky", + "system": "System", + "theme_mode": "Theme Mode", + "theme_preset": "Theme Preset", + "toggle_centered": "Toggle centered", + "toggle_dark": "Toggle dark", + "toggle_floating": "Toggle floating", + "toggle_full_width": "Toggle full-width", + "toggle_icon": "Toggle icon", + "toggle_inset": "Toggle inset", + "toggle_light": "Toggle light", + "toggle_offcanvas": "Toggle offcanvas", + "toggle_scroll": "Toggle scroll", + "toggle_sidebar": "Toggle sidebar", + "toggle_sticky": "Toggle sticky", + "toggle_system": "Toggle system" + }, + "layout": { + "check_out_the_docs_or_open_an_issue_on_g": "Check out the docs or open an issue on GitHub, community support is just a click away.", + "clone_the_repo_install_dependencies_and": "Clone the repo, install dependencies, and your dashboard is live in minutes.", + "design_build_launch_repeat": "Design. Build. Launch. Repeat.", + "need_help": "Need help?", + "open_github_repository": "Open GitHub repository", + "ready_to_launch": "Ready to launch?" + }, + "login_form": { + "login": "Login" + }, + "logistics": { + "selected_shipment_details_and_route_map": "Selected shipment details and route map." + }, + "mail_inbox": { + "inbox": "Inbox", + "search": "Search..." + }, + "mail_sidebar": { + "folders": "Folders", + "new_email": "New email" + }, + "mail_view": { + "archive": "Archive", + "close_message": "Close message", + "more_actions": "More actions", + "move_to_trash": "Move to trash", + "next_message": "Next message", + "pin_thread": "Pin thread", + "previous_message": "Previous message", + "reply": "Reply" + }, + "mail": { + "loading_mail": "Loading mail...", + "mail_message": "Mail message", + "read_the_selected_email_message": "Read the selected email message" + }, + "metric_cards": { + "acquisition_needs_attention": "Acquisition needs attention", + "active_accounts": "Active Accounts", + "engagement_exceeds_targets": "Engagement exceeds targets", + "growth_rate": "Growth Rate", + "meets_growth_projections": "Meets growth projections", + "new_customers": "New Customers", + "total_revenue": "Total Revenue", + "visitors_for_the_last_6_months": "Visitors for the last 6 months" + }, + "monthly_cash_flow": { + "this_month_net": "This month · Net" + }, + "nav_documents": { + "documents": "Documents", + "more": "More" + }, + "nav_main": { + "inbox": "Inbox", + "quick_create": "Quick Create" + }, + "net_worth": { + "3_680_mom": "+$3,680 MoM", + "across_all_linked_accounts": "Across all linked accounts", + "this_month": "This month" + }, + "not_found": { + "go_back_home": "Go back home", + "page_not_found": "Page not found.", + "the_page_you_are_looking_for_could_not_b": "The page you are looking for could not be found." + }, + "operational_cards": { + "action_items": "Action Items", + "leads_increased_by_18_2_since_last_month": "Leads increased by 18.2% since last month.", + "sales_by_region": "Sales by Region", + "sales_pipeline": "Sales Pipeline" + }, + "opportunities_section": { + "recent_opportunities": "Recent Opportunities", + "search_deals": "Search deals...", + "track_qualified_leads_moving_through_dis": "Track qualified leads moving through discovery, proposal, and closing stages." + }, + "overview_cards": { + "35_growth_since_last_year": "+35% growth since last year", + "last_6_months": "Last 6 Months", + "last_month": "Last Month", + "new_leads": "New Leads", + "projects_won": "Projects Won", + "proposals_sent": "Proposals Sent", + "revenue": "Revenue", + "revenue_growth": "Revenue Growth", + "year_to_date_ytd": "Year to Date (YTD)" + }, + "overview_kpis": { + "124_more_than_last_month": "$124 more than last month", + "410_above_your_30_day_average": "$410 above your 30-day average", + "9_8k_vs_last_month": "+$9.8K vs last month", + "available_cash": "Available cash", + "monthly_spend": "Monthly spend", + "net_worth": "Net worth", + "savings_rate": "Savings rate", + "up_from_25_6_last_month": "Up from 25.6% last month" + }, + "page": { + "academy_dashboard": "Academy Dashboard", + "accounts": "Accounts", + "accounts_view_coming_soon": "Accounts view coming soon.", + "acquisition": "Acquisition", + "acquisition_view_coming_soon": "Acquisition view coming soon.", + "activity": "Activity", + "add_invoice_details_review_the_preview_a": "Add invoice details, review the preview, and send it to your client.", + "all_channels": "All Channels", + "audience": "Audience", + "audience_view_coming_soon": "Audience view coming soon.", + "chat_preview": "Chat preview", + "coming_soon": "Coming Soon", + "conversions": "Conversions", + "conversions_view_coming_soon": "Conversions view coming soon.", + "create_new_invoice": "Create New Invoice", + "create_your_account": "Create your account", + "dashboard": "Dashboard", + "engagement": "Engagement", + "engagement_view_coming_soon": "Engagement view coming soon.", + "fill_in_your_details_below_we_promise_no": "Fill in your details below. We promise not to quiz you about your first pet's name (this time).", + "go_to_homepage": "Go to Homepage", + "good_morning_arham": "Good morning, Arham.", + "good_morning_teacher_heres_a_quick_overv": "Good morning, Teacher. Here's a quick overview of today's activity.", + "hello_again": "Hello again", + "hello_aiy": "Hello, Aiy", + "heres_a_list_of_your_tasks_for_this_mont": "Here's a list of your tasks for this month!", + "insights": "Insights", + "last_30_days": "Last 30 Days", + "last_month": "Last Month", + "let_apos_s_make_today_productive_and_mea": "Let's make today productive and meaningful.", + "login": "Login", + "login_to_continue": "Login to continue", + "login_to_your_account": "Login to your account", + "mail_preview": "Mail preview", + "marketplace": "Marketplace", + "monitor_traffic_engagement_and_conversio": "Monitor traffic, engagement, and conversion performance in one view.", + "online_store": "Online Store", + "open_chat_in_new_tab": "Open chat in new tab", + "open_mail_in_new_tab": "Open mail in new tab", + "or_continue_with": "Or continue with", + "overview": "Overview", + "page_not_found": "Page not found.", + "personal_finances": "Personal Finances", + "please_enter_your_details_to_login": "Please enter your details to login.", + "please_enter_your_details_to_register": "Please enter your details to register.", + "register": "Register", + "retail": "Retail", + "social": "Social", + "store_overview": "Store Overview", + "this_iframe_shows_the_standalone_chat_sc": "This iframe shows the standalone chat screen. Open it in full screen for a better view.", + "this_iframe_shows_the_standalone_mail_sc": "This iframe shows the standalone mail screen. Open it in full screen for a better view.", + "this_month": "This Month", + "this_page_is_under_development_and_will": "This page is under development and will be available in future updates.", + "this_section_will_be_added_in_future_upd": "This section will be added in future updates.", + "transactions": "Transactions", + "transactions_view_coming_soon": "Transactions view coming soon.", + "unauthorized_access": "Unauthorized Access", + "updated_5_min_ago": "Updated 5 min ago", + "utilities": "Utilities", + "welcome": "Welcome!", + "welcome_back": "Welcome back!", + "welcome_back_enter_your_email_and_passwo": "Welcome back. Enter your email and password, let's hope you remember them this time.", + "year_to_date": "Year to Date", + "you_apos_re_in_the_right_place": "You're in the right place.", + "you_do_not_have_permission_to_view_the_r": "You do not have permission to view the requested content. Please contact the site administrator if you believe this is an error." + }, + "pagination": { + "go_to_next_page": "Go to next page", + "go_to_previous_page": "Go to previous page", + "more_pages": "More pages", + "pagination": "pagination" + }, + "performance_highlights": { + "performance_highlights": "Performance Highlights" + }, + "performance_overview": { + "3_months": "3 months", + "all_segments": "All segments", + "customer_activity": "Customer Activity", + "customer_activity_for_the_last_3_months": "Customer activity for the last 3 months", + "last_3_months": "Last 3 months", + "organic": "Organic", + "paid": "Paid", + "period": "Period", + "segments": "Segments", + "view_report": "View report" + }, + "pipeline_activity": { + "discovery_calls_booked": "Discovery Calls Booked", + "last_12_months": "Last 12 months", + "last_30_days": "Last 30 days", + "last_quarter": "Last quarter", + "leads": "leads", + "meetings": "meetings", + "qualified_lead_flow": "Qualified Lead Flow", + "select_range": "Select range", + "total_qualified_leads_captured_over_the": "Total qualified leads captured over the last 12 months." + }, + "primary_account": { + "available_balance": "Available balance", + "pay": "Pay", + "request": "Request" + }, + "project_environments": { + "environment": "Environment", + "health": "Health", + "latency": "Latency", + "no_environments_in_this_project": "No environments in this project", + "platform": "Platform", + "resources": "Resources", + "server": "Server", + "uptime": "Uptime" + }, + "projects_section": { + "active": "Active", + "completed": "Completed", + "planning": "Planning", + "projects": "Projects" + }, + "quick_actions": { + "quick_actions": "Quick Actions", + "quick_transfer": "Quick Transfer", + "send": "Send", + "shortcuts": "Shortcuts", + "usd": "USD" + }, + "quote_card": { + "keep_showing_up_you_apos_ve_got_this": "Keep showing up. You've got this.", + "small_consistent_actions_lead_to_big_res": "Small, consistent actions lead to big results." + }, + "realtime_visitors": { + "canada": "Canada", + "india": "India", + "live": "Live", + "per_minute": "per minute", + "realtime_visitors": "Realtime Visitors", + "united_kingdom": "United Kingdom", + "united_states": "United States" + }, + "recent_notes_card": { + "recent_notes": "Recent Notes", + "view_all": "View all" + }, + "recent_orders": { + "download_orders": "Download orders", + "open_orders": "Open orders", + "recent_orders": "Recent Orders" + }, + "register_form": { + "register": "Register" + }, + "roles": { + "3_roles_have_unreviewed_permission_chang": "3 roles have unreviewed permission changes.", + "access_reviews": "Access reviews", + "access_reviews_coming_soon": "Access Reviews Coming Soon", + "active": "Active", + "alex_kim": "Alex Kim", + "all": "All", + "chris_lee": "Chris Lee", + "create_role": "Create role", + "custom": "Custom", + "jane_doe": "Jane Doe", + "manage_access_roles_and_permissions_acro": "Manage access roles and permissions across your organization.", + "needs_review": "Needs review", + "owner": "Owner:", + "permission_sets": "Permission sets", + "permission_sets_coming_soon": "Permission Sets Coming Soon", + "review_required": "Review required", + "roles": "Roles", + "roles_permissions": "Roles & Permissions", + "search_roles": "Search roles...", + "status": "Status:", + "system": "System", + "type": "Type:" + }, + "savings_rate": { + "3_5_mom": "+3.5% MoM", + "above_your_average": "Above your average", + "this_month_after_expenses": "This month · After expenses" + }, + "search_dialog": { + "no_results_found": "No results found.", + "search_dashboards_users_and_more": "Search dashboards, users, and more…" + }, + "section_cards": { + "acquisition_needs_attention": "Acquisition needs attention", + "active_accounts": "Active Accounts", + "engagement_exceed_targets": "Engagement exceed targets", + "growth_rate": "Growth Rate", + "meets_growth_projections": "Meets growth projections", + "new_customers": "New Customers", + "total_revenue": "Total Revenue", + "visitors_for_the_last_6_months": "Visitors for the last 6 months" + }, + "shipment_details": { + "activity": "Activity", + "activity_view_coming_soon": "Activity view coming soon.", + "cargo": "Cargo", + "cargo_details": "Cargo details", + "cargo_view_coming_soon": "Cargo view coming soon.", + "copy_shipment_id": "Copy shipment ID", + "documents": "Documents", + "documents_view_coming_soon": "Documents view coming soon.", + "overview": "Overview", + "route": "Route", + "route_view_coming_soon": "Route view coming soon.", + "select_a_shipment_to_view_details": "Select a shipment to view details.", + "status": "Status", + "total_weight": "Total weight", + "transport_mode": "Transport mode" + }, + "shipment_list": { + "all_156": "All (156)", + "cargo": "Cargo", + "delayed_9": "Delayed (9)", + "delivered_98": "Delivered (98)", + "eta": "ETA", + "in_transit_32": "In Transit (32)", + "search_shipments": "Search shipments", + "search_shipments_2": "Search shipments...", + "shipments": "Shipments" + }, + "shipment_route_map": { + "southeast_asia_shipment_region_map": "Southeast Asia shipment region map" + }, + "sidebar_support_card": { + "looking_for_something_more": "Looking for something more?", + "reach_out_on_x": "Reach out on X" + }, + "sidebar": { + "displays_the_mobile_sidebar": "Displays the mobile sidebar.", + "sidebar": "Sidebar", + "toggle_sidebar": "Toggle Sidebar" + }, + "spending_breakdown": { + "expense_distribution_by_category": "Expense distribution by category.", + "spending_breakdown": "Spending Breakdown" + }, + "spinner": { + "loading": "Loading" + }, + "store_traffic": { + "12_9k_visits": "12.9K visits", + "store_traffic": "Store Traffic" + }, + "subscriber_overview": { + "18_426_customers": "18,426 Customers", + "recent_customer_records_with_plan_billin": "Recent customer records with plan, billing, status, and signup activity." + }, + "table": { + "add_section": "Add Section", + "export": "Export", + "focus_documents": "Focus Documents", + "go_to_first_page": "Go to first page", + "go_to_last_page": "Go to last page", + "go_to_next_page": "Go to next page", + "go_to_previous_page": "Go to previous page", + "outline": "Outline", + "recent_leads": "Recent Leads", + "rows_per_page": "Rows per page", + "search_customers": "Search customers...", + "select_a_view": "Select a view", + "toggle_columns": "Toggle columns", + "track_and_manage_your_latest_leads_and_t": "Track and manage your latest leads and their status.", + "view": "View" + }, + "task_reminders": { + "monthly_proposal_goal": "Monthly Proposal Goal", + "product_demo_with_tim": "Product demo with Tim", + "sent": "sent", + "upcoming_meetings": "Upcoming Meetings", + "weblabs_studio": "Weblabs Studio" + }, + "tasks_section": { + "tasks": "Tasks", + "this_week": "This Week", + "today": "Today", + "tomorrow": "Tomorrow" + }, + "tasks_toolbar": { + "filter_tasks": "Filter tasks...", + "toggle_columns": "Toggle columns" + }, + "tasks": { + "go_to_first_page": "Go to first page", + "go_to_last_page": "Go to last page", + "prev": "Prev", + "rows_per_page": "Rows per page" + }, + "top_pages": { + "avg_time": "Avg Time", + "bounce": "Bounce", + "page_performance": "Page Performance", + "views": "Views" + }, + "top_products": { + "73_of_sales": "73% of sales", + "products": "Products", + "sales": "Sales", + "sales_by_category": "Sales by category", + "share": "Share", + "top_products": "Top Products" + }, + "top_traffic_sources": { + "campaigns": "Campaigns", + "referrers": "Referrers", + "sources": "Sources", + "traffic_sources": "Traffic Sources" + }, + "traffic_quality": { + "traffic_quality": "Traffic Quality" + }, + "traffic_sources": { + "14_8k_visits": "14.8K visits", + "traffic_sources": "Traffic Sources" + }, + "transactions_overview_card": { + "monthly": "Monthly", + "spending_overview": "Spending Overview", + "weekly": "Weekly", + "yearly": "Yearly" + }, + "upcoming_events": { + "upcoming_events": "Upcoming Events" + }, + "upcoming_transactions": { + "upcoming_bills_payments": "Upcoming Bills & Payments" + }, + "users_columns": { + "actions": "Actions", + "deactivate_user": "Deactivate user", + "edit_user": "Edit user", + "manage_team": "Manage team", + "resend_invite": "Resend invite", + "select_all_users": "Select all users", + "view_profile": "View profile" + }, + "users_table": { + "rows_per_page": "Rows per page" + }, + "users": { + "grid_view": "Grid view", + "k": "⌘K", + "list_view": "List view", + "manage_your_organization_members_and_the": "Manage your organization members and their access.", + "role": "Role:", + "search_users": "Search users...", + "status": "Status:", + "team": "Team:", + "users": "Users", + "workspace": "Workspace:" + }, + "wallet": { + "air_gapped": "Air-Gapped", + "wallet": "Wallet" + }, + "weekly_summary_card": { + "4_of_6_goals_completed": "4 of 6 goals completed", + "this_week": "This Week", + "view_all": "View all", + "youre_doing_great_keep_the_momentum_goin": "You’re doing great. Keep the momentum going." + } +} diff --git a/messages/translation-todo.json b/messages/translation-todo.json new file mode 100644 index 0000000..d053ef7 --- /dev/null +++ b/messages/translation-todo.json @@ -0,0 +1,2718 @@ +[ + { + "key": "analytics_actions_manager_queue.3_deals", + "en": "3 Deals" + }, + { + "key": "analytics_actions_manager_queue.actionable_deals", + "en": "Actionable deals" + }, + { + "key": "analytics_actions_manager_queue.coach", + "en": "Coach" + }, + { + "key": "analytics_actions_manager_queue.coach_queue", + "en": "Coach queue" + }, + { + "key": "analytics_actions_manager_queue.escalate", + "en": "Escalate" + }, + { + "key": "analytics_actions_manager_queue.escalate_coach_and_reforecast_before_com", + "en": "Escalate, coach, and reforecast before commit call" + }, + { + "key": "analytics_actions_manager_queue.intervention_mix", + "en": "Intervention mix" + }, + { + "key": "analytics_actions_manager_queue.leila_zhang_3_deals", + "en": "Leila Zhang · 3 deals" + }, + { + "key": "analytics_actions_manager_queue.manager_action_queue", + "en": "Manager Action Queue" + }, + { + "key": "analytics_actions_manager_queue.manager_focus", + "en": "Manager focus" + }, + { + "key": "analytics_actions_manager_queue.median_risk", + "en": "Median risk" + }, + { + "key": "analytics_actions_manager_queue.next_interventions", + "en": "Next interventions" + }, + { + "key": "analytics_actions_manager_queue.no_action_monitor", + "en": "No-action monitor" + }, + { + "key": "analytics_actions_manager_queue.owners_engaged", + "en": "Owners engaged" + }, + { + "key": "analytics_actions_manager_queue.primary_owner", + "en": "Primary owner" + }, + { + "key": "analytics_actions_manager_queue.reforecast", + "en": "Reforecast" + }, + { + "key": "analytics_actions_manager_queue.revenue_in_play", + "en": "Revenue in play" + }, + { + "key": "analytics_actions_manager_queue.stale_pipeline", + "en": "Stale pipeline" + }, + { + "key": "analytics_actions_manager_queue.this_forecast_cycle", + "en": "This forecast cycle" + }, + { + "key": "analytics_actions_risk_ledger.accounts_under_pressure_with_blocker_nex", + "en": "Accounts under pressure with blocker, next action, and owner responsibility." + }, + { + "key": "analytics_actions_risk_ledger.close_date_already_exceeded", + "en": "Close date already exceeded" + }, + { + "key": "analytics_actions_risk_ledger.critical_accounts", + "en": "Critical accounts" + }, + { + "key": "analytics_actions_risk_ledger.current_filter_window", + "en": "Current filter window" + }, + { + "key": "analytics_actions_risk_ledger.escalations_due", + "en": "Escalations due" + }, + { + "key": "analytics_actions_risk_ledger.median_inactivity", + "en": "Median inactivity" + }, + { + "key": "analytics_actions_risk_ledger.next_7_days", + "en": "Next 7 days" + }, + { + "key": "analytics_actions_risk_ledger.overdue_revenue", + "en": "Overdue revenue" + }, + { + "key": "analytics_actions_risk_ledger.revenue_risk_ledger", + "en": "Revenue Risk Ledger" + }, + { + "key": "analytics_actions_risk_ledger.risk_ladder", + "en": "Risk Ladder" + }, + { + "key": "analytics_actions_risk_ledger.risk_ladder_80_current_window", + "en": "Risk Ladder >= 80 (current window)" + }, + { + "key": "analytics_drivers_coverage_triage.1_9x_3_0x", + "en": "1.9x / 3.0x" + }, + { + "key": "analytics_drivers_coverage_triage.4_deals_eta_10d", + "en": "4 deals • ETA 10d" + }, + { + "key": "analytics_drivers_coverage_triage.at_risk", + "en": "At Risk" + }, + { + "key": "analytics_drivers_coverage_triage.coverage_below_target_prioritize_qualifi", + "en": "Coverage below target. Prioritize qualified volume and shorter cycle time." + }, + { + "key": "analytics_drivers_coverage_triage.coverage_triage", + "en": "Coverage Triage" + }, + { + "key": "analytics_drivers_coverage_triage.decision_ladder_for_this_forecast_cycle", + "en": "Decision ladder for this forecast cycle" + }, + { + "key": "analytics_drivers_coverage_triage.gap_222_930", + "en": "Gap $222,930" + }, + { + "key": "analytics_drivers_coverage_triage.open_top_5_deals", + "en": "Open top 5 deals" + }, + { + "key": "analytics_drivers_forecast_target.12_week_trend_with_attainment_context", + "en": "12-week trend with attainment context" + }, + { + "key": "analytics_drivers_forecast_target.attainment", + "en": "Attainment" + }, + { + "key": "analytics_drivers_forecast_target.forecast_confidence", + "en": "Forecast Confidence" + }, + { + "key": "analytics_drivers_forecast_target.forecast_vs_target", + "en": "Forecast vs Target" + }, + { + "key": "analytics_drivers_forecast_target.weighted_pipeline", + "en": "Weighted Pipeline" + }, + { + "key": "analytics_kpi_strip.conversion_rate", + "en": "Conversion Rate" + }, + { + "key": "analytics_kpi_strip.engagement_rate", + "en": "Engagement Rate" + }, + { + "key": "analytics_kpi_strip.last_4_weeks", + "en": "last 4 weeks" + }, + { + "key": "analytics_kpi_strip.pageviews", + "en": "Pageviews" + }, + { + "key": "analytics_kpi_strip.sessions", + "en": "Sessions" + }, + { + "key": "analytics_kpi_strip.unique_visitors", + "en": "Unique Visitors" + }, + { + "key": "analytics_overview.core_risk_signals_vs_previous_period", + "en": "Core risk signals vs previous period" + }, + { + "key": "analytics_overview.filters", + "en": "Filters" + }, + { + "key": "analytics_overview.previous_1_141_000", + "en": "Previous $1,141,000" + }, + { + "key": "analytics_overview.revenue", + "en": "Revenue" + }, + { + "key": "analytics_overview.risk_ladder_30", + "en": "Risk Ladder 30" + }, + { + "key": "analytics_overview.risk_summary", + "en": "Risk summary" + }, + { + "key": "analytics_overview.selected_range", + "en": "Selected range" + }, + { + "key": "analytics_toolbar.analytics_actions", + "en": "Analytics actions" + }, + { + "key": "analytics_toolbar.last_3_months", + "en": "Last 3 months" + }, + { + "key": "analytics_toolbar.last_4_weeks", + "en": "Last 4 weeks" + }, + { + "key": "analytics_toolbar.last_7_days", + "en": "Last 7 days" + }, + { + "key": "analytics_toolbar.more_analytics_actions", + "en": "More analytics actions" + }, + { + "key": "analytics_toolbar.select_range", + "en": "Select range" + }, + { + "key": "analytics_toolbar.year_to_date", + "en": "Year to date" + }, + { + "key": "assignment_status.assignment_status", + "en": "Assignment Status" + }, + { + "key": "balance_distribution_card.account_allocation", + "en": "Account Allocation" + }, + { + "key": "breadcrumb.breadcrumb", + "en": "breadcrumb" + }, + { + "key": "breadcrumb.more", + "en": "More" + }, + { + "key": "calendar.today", + "en": "Today" + }, + { + "key": "card_overview.1_of_4_cards_added_overview_of_your_prim", + "en": "1 of 4 cards added · Overview of your primary card and upcoming payments" + }, + { + "key": "card_overview.21st_monthly", + "en": "21st monthly" + }, + { + "key": "card_overview.add_card", + "en": "Add Card" + }, + { + "key": "card_overview.arham_khan", + "en": "Arham Khan" + }, + { + "key": "card_overview.available_balance", + "en": "Available Balance" + }, + { + "key": "card_overview.billing_cycle", + "en": "Billing cycle" + }, + { + "key": "card_overview.card_limit", + "en": "Card Limit" + }, + { + "key": "card_overview.card_type", + "en": "Card type" + }, + { + "key": "card_overview.cvv", + "en": "CVV" + }, + { + "key": "card_overview.manage_card", + "en": "Manage Card" + }, + { + "key": "card_overview.my_card", + "en": "My Card" + }, + { + "key": "card_overview.upcoming_payments", + "en": "Upcoming Payments" + }, + { + "key": "card_overview.valid_thru", + "en": "Valid Thru" + }, + { + "key": "card_overview.view_all_payments", + "en": "View All Payments" + }, + { + "key": "card_overview.virtual", + "en": "Virtual" + }, + { + "key": "carousel.next_slide", + "en": "Next slide" + }, + { + "key": "carousel.previous_slide", + "en": "Previous slide" + }, + { + "key": "cash_flow_overview.cash_flow_overview", + "en": "Cash Flow Overview" + }, + { + "key": "cash_flow_overview.expenses", + "en": "Expenses" + }, + { + "key": "cash_flow_overview.income", + "en": "Income" + }, + { + "key": "cash_flow_overview.last_6_months", + "en": "Last 6 Months" + }, + { + "key": "cash_flow_overview.monthly_income_and_expenses_with_net_cas", + "en": "Monthly income and expenses with net cash impact." + }, + { + "key": "cash_flow_overview.select_period", + "en": "Select period" + }, + { + "key": "cash_flow_overview.this_month", + "en": "This Month" + }, + { + "key": "cash_flow_overview.this_year", + "en": "This Year" + }, + { + "key": "cash_flow_overview.year_to_date", + "en": "Year to Date" + }, + { + "key": "chart_area_interactive.last_3_months", + "en": "Last 3 months" + }, + { + "key": "chart_area_interactive.last_30_days", + "en": "Last 30 days" + }, + { + "key": "chart_area_interactive.last_7_days", + "en": "Last 7 days" + }, + { + "key": "chart_area_interactive.select_a_value", + "en": "Select a value" + }, + { + "key": "chart_area_interactive.total_for_the_last_3_months", + "en": "Total for the last 3 months" + }, + { + "key": "chart_area_interactive.total_visitors", + "en": "Total Visitors" + }, + { + "key": "chat_conversation_list.closed", + "en": "Closed" + }, + { + "key": "chat_conversation_list.inbox", + "en": "Inbox" + }, + { + "key": "chat_header.new_conversation", + "en": "New conversation" + }, + { + "key": "chat_header.notifications", + "en": "Notifications" + }, + { + "key": "chat_header.search_conversations", + "en": "Search conversations..." + }, + { + "key": "chat_header.settings", + "en": "Settings" + }, + { + "key": "chat_header.studio_chat", + "en": "Studio Chat" + }, + { + "key": "chat_profile_details.activity", + "en": "Activity" + }, + { + "key": "chat_profile_details.call", + "en": "Call" + }, + { + "key": "chat_profile_details.close_profile", + "en": "Close profile" + }, + { + "key": "chat_profile_details.company", + "en": "Company" + }, + { + "key": "chat_profile_details.copy_link", + "en": "Copy link" + }, + { + "key": "chat_profile_details.details", + "en": "Details" + }, + { + "key": "chat_profile_details.email", + "en": "Email" + }, + { + "key": "chat_profile_details.files", + "en": "Files" + }, + { + "key": "chat_profile_details.location", + "en": "Location" + }, + { + "key": "chat_profile_details.more", + "en": "More" + }, + { + "key": "chat_profile_details.phone", + "en": "Phone" + }, + { + "key": "chat_profile_details.qualified_since", + "en": "Qualified since" + }, + { + "key": "chat_profile_details.role", + "en": "Role" + }, + { + "key": "chat_profile_details.schedule", + "en": "Schedule" + }, + { + "key": "chat_profile_details.stage", + "en": "Stage" + }, + { + "key": "chat_profile_details.tags", + "en": "Tags" + }, + { + "key": "chat_profile_details.timezone", + "en": "Timezone" + }, + { + "key": "chat_profile_details.website", + "en": "Website" + }, + { + "key": "chat_sidebar.channels", + "en": "Channels" + }, + { + "key": "chat_sidebar.views", + "en": "Views" + }, + { + "key": "chat_thread.ai_assist", + "en": "AI assist" + }, + { + "key": "chat_thread.attach_file", + "en": "Attach file" + }, + { + "key": "chat_thread.block_contact", + "en": "Block contact" + }, + { + "key": "chat_thread.call", + "en": "Call" + }, + { + "key": "chat_thread.emoji", + "en": "Emoji" + }, + { + "key": "chat_thread.format", + "en": "Format" + }, + { + "key": "chat_thread.insert_link", + "en": "Insert link" + }, + { + "key": "chat_thread.internal_note", + "en": "Internal note" + }, + { + "key": "chat_thread.may_6_2026", + "en": "May 6, 2026" + }, + { + "key": "chat_thread.more_actions", + "en": "More actions" + }, + { + "key": "chat_thread.reply", + "en": "Reply" + }, + { + "key": "chat_thread.send", + "en": "Send" + }, + { + "key": "chat_thread.snooze", + "en": "Snooze" + }, + { + "key": "chat_thread.tag", + "en": "Tag" + }, + { + "key": "chat_thread.type_your_message", + "en": "Type your message..." + }, + { + "key": "chat_thread.write_an_internal_note", + "en": "Write an internal note..." + }, + { + "key": "class_schedule.cancelled", + "en": "Cancelled" + }, + { + "key": "class_schedule.class_schedule", + "en": "Class Schedule" + }, + { + "key": "class_schedule.computer_science", + "en": "Computer Science" + }, + { + "key": "class_schedule.english_literature", + "en": "English Literature" + }, + { + "key": "class_schedule.grade_11a_room_1_08", + "en": "Grade 11A • Room 1.08" + }, + { + "key": "class_schedule.grade_11a_room_2_14", + "en": "Grade 11A • Room 2.14" + }, + { + "key": "class_schedule.grade_11b_computing_lab", + "en": "Grade 11B • Computing Lab" + }, + { + "key": "class_schedule.grade_11b_seminar_room_3", + "en": "Grade 11B • Seminar Room 3" + }, + { + "key": "class_schedule.grade_11c_physics_lab", + "en": "Grade 11C • Physics Lab" + }, + { + "key": "class_schedule.in_progress", + "en": "In Progress" + }, + { + "key": "class_schedule.modern_european_history", + "en": "Modern European History" + }, + { + "key": "class_schedule.physics", + "en": "Physics" + }, + { + "key": "class_schedule.pure_mathematics", + "en": "Pure Mathematics" + }, + { + "key": "class_schedule.upcoming", + "en": "Upcoming" + }, + { + "key": "client_selector.billed_to", + "en": "Billed To" + }, + { + "key": "columns.actions", + "en": "Actions" + }, + { + "key": "columns.archive", + "en": "Archive" + }, + { + "key": "columns.archive_role", + "en": "Archive role" + }, + { + "key": "columns.assign", + "en": "Assign" + }, + { + "key": "columns.assign_reviewer", + "en": "Assign reviewer" + }, + { + "key": "columns.capabilities", + "en": "Capabilities" + }, + { + "key": "columns.contact_customer", + "en": "Contact customer" + }, + { + "key": "columns.copy_order_id", + "en": "Copy order ID" + }, + { + "key": "columns.cover_page", + "en": "Cover Page" + }, + { + "key": "columns.date", + "en": "Date" + }, + { + "key": "columns.delete", + "en": "Delete" + }, + { + "key": "columns.design", + "en": "Design" + }, + { + "key": "columns.done", + "en": "Done" + }, + { + "key": "columns.drag_to_reorder", + "en": "Drag to reorder" + }, + { + "key": "columns.duplicate_role", + "en": "Duplicate role" + }, + { + "key": "columns.eddie_lake", + "en": "Eddie Lake" + }, + { + "key": "columns.edit", + "en": "Edit" + }, + { + "key": "columns.edit_opportunity", + "en": "Edit opportunity" + }, + { + "key": "columns.edit_role", + "en": "Edit role" + }, + { + "key": "columns.emily_whalen", + "en": "Emily Whalen" + }, + { + "key": "columns.executive_summary", + "en": "Executive Summary" + }, + { + "key": "columns.favorite", + "en": "Favorite" + }, + { + "key": "columns.focus_documents", + "en": "Focus Documents" + }, + { + "key": "columns.header", + "en": "Header" + }, + { + "key": "columns.in_progress", + "en": "In Progress" + }, + { + "key": "columns.jamik_tashpulatov", + "en": "Jamik Tashpulatov" + }, + { + "key": "columns.labels", + "en": "Labels" + }, + { + "key": "columns.limit", + "en": "Limit" + }, + { + "key": "columns.make_a_copy", + "en": "Make a copy" + }, + { + "key": "columns.manage_members", + "en": "Manage members" + }, + { + "key": "columns.narrative", + "en": "Narrative" + }, + { + "key": "columns.not_started", + "en": "Not Started" + }, + { + "key": "columns.open_menu", + "en": "Open menu" + }, + { + "key": "columns.open_order_actions", + "en": "Open order actions" + }, + { + "key": "columns.order_actions", + "en": "Order Actions" + }, + { + "key": "columns.review_permissions", + "en": "Review permissions" + }, + { + "key": "columns.reviewer", + "en": "Reviewer" + }, + { + "key": "columns.select_a_reviewer", + "en": "Select a reviewer" + }, + { + "key": "columns.select_a_status", + "en": "Select a status" + }, + { + "key": "columns.select_a_type", + "en": "Select a type" + }, + { + "key": "columns.select_all", + "en": "Select all" + }, + { + "key": "columns.select_all_customers_on_this_page", + "en": "Select all customers on this page" + }, + { + "key": "columns.select_all_opportunities", + "en": "Select all opportunities" + }, + { + "key": "columns.select_all_orders", + "en": "Select all orders" + }, + { + "key": "columns.select_row", + "en": "Select row" + }, + { + "key": "columns.showing_total_visitors_for_the_last_6_mo", + "en": "Showing total visitors for the last 6 months" + }, + { + "key": "columns.status", + "en": "Status" + }, + { + "key": "columns.submit", + "en": "Submit" + }, + { + "key": "columns.table_of_contents", + "en": "Table of Contents" + }, + { + "key": "columns.target", + "en": "Target" + }, + { + "key": "columns.technical_approach", + "en": "Technical Approach" + }, + { + "key": "columns.total", + "en": "Total" + }, + { + "key": "columns.type", + "en": "Type" + }, + { + "key": "columns.view", + "en": "View" + }, + { + "key": "columns.view_details", + "en": "View details" + }, + { + "key": "columns.view_order", + "en": "View order" + }, + { + "key": "customer_reviews.12_8k_reviews", + "en": "12.8K reviews" + }, + { + "key": "customer_reviews.4_6_average_rating", + "en": "4.6 average rating" + }, + { + "key": "customer_reviews.customers_reviewed_this_month", + "en": "Customers reviewed this month" + }, + { + "key": "customer_reviews.melody_macy", + "en": "Melody Macy" + }, + { + "key": "customer_reviews.next_review", + "en": "Next review" + }, + { + "key": "customer_reviews.previous_review", + "en": "Previous review" + }, + { + "key": "customer_reviews.reviews", + "en": "Reviews" + }, + { + "key": "customer_reviews.the_linen_overshirt_arrived_faster_than", + "en": "The linen overshirt arrived faster than expected and the fit was exactly right." + }, + { + "key": "finance_notification.credit_score_updated", + "en": "Credit score updated" + }, + { + "key": "finance_notification.view_details", + "en": "View details" + }, + { + "key": "finance_notification.your_score_increased_by_14_points_to_782", + "en": "Your score increased by 14 points to 782." + }, + { + "key": "focus_card.focus", + "en": "Focus" + }, + { + "key": "focus_card.no_notifications_full_focus", + "en": "No notifications · Full focus" + }, + { + "key": "focus_card.start", + "en": "Start" + }, + { + "key": "income_breakdown.dividends_and_interest_11", + "en": "Dividends and interest · 11%" + }, + { + "key": "income_breakdown.freelance_projects_21", + "en": "Freelance projects · 21%" + }, + { + "key": "income_breakdown.income_sources", + "en": "Income sources" + }, + { + "key": "income_breakdown.primary_salary_68", + "en": "Primary salary · 68%" + }, + { + "key": "income_reliability.based_on_last_6_months_of_income", + "en": "Based on last 6 months of income" + }, + { + "key": "income_reliability.fixed_income", + "en": "Fixed Income" + }, + { + "key": "income_reliability.fluctuating_sources", + "en": "Fluctuating sources" + }, + { + "key": "income_reliability.high_reliability", + "en": "High Reliability" + }, + { + "key": "income_reliability.how_consistent_your_income_has_been_rece", + "en": "How consistent your income has been recently." + }, + { + "key": "income_reliability.income_reliability", + "en": "Income Reliability" + }, + { + "key": "income_reliability.recurring_predictable", + "en": "Recurring · Predictable" + }, + { + "key": "income_reliability.variable_income", + "en": "Variable Income" + }, + { + "key": "infrastructure_header.infrastructure_overview", + "en": "Infrastructure Overview" + }, + { + "key": "infrastructure_header.k", + "en": "⌘ K" + }, + { + "key": "infrastructure_header.last_updated_30s_ago", + "en": "Last updated: 30s ago" + }, + { + "key": "infrastructure_header.monitor_environments_server_health_uptim", + "en": "Monitor environments, server health, uptime, and resource usage across every project." + }, + { + "key": "infrastructure_header.search_by_name_or_domain", + "en": "Search by name or domain..." + }, + { + "key": "insight_cards.average_progress_78_2_projects_above_tar", + "en": "Average progress: 78% · 2 projects above target" + }, + { + "key": "insight_cards.download_csv", + "en": "Download CSV" + }, + { + "key": "insight_cards.leads_by_source", + "en": "Leads by Source" + }, + { + "key": "insight_cards.project_revenue_vs_target", + "en": "Project Revenue vs. Target" + }, + { + "key": "insight_cards.view_full_report", + "en": "View Full Report" + }, + { + "key": "inventory.inventory", + "en": "Inventory" + }, + { + "key": "invoice_adjustments.adjustments", + "en": "Adjustments" + }, + { + "key": "invoice_adjustments.discount_value", + "en": "Discount value" + }, + { + "key": "invoice_adjustments.value", + "en": "Value" + }, + { + "key": "invoice_details.reference_number", + "en": "Reference Number" + }, + { + "key": "invoice_form.business", + "en": "Business" + }, + { + "key": "invoice_form.invoice", + "en": "Invoice" + }, + { + "key": "invoice_form.payment", + "en": "Payment" + }, + { + "key": "invoice_items.description", + "en": "Description" + }, + { + "key": "invoice_items.invoice_items", + "en": "Invoice Items" + }, + { + "key": "invoice_items.line_total", + "en": "Line Total" + }, + { + "key": "invoice_items.line_total_2", + "en": "Line total" + }, + { + "key": "invoice_items.unit_cost", + "en": "Unit cost" + }, + { + "key": "invoice_items.units", + "en": "Units" + }, + { + "key": "invoice_paper.balance_due", + "en": "Balance due" + }, + { + "key": "invoice_paper.bill_to", + "en": "Bill to" + }, + { + "key": "invoice_paper.description", + "en": "Description" + }, + { + "key": "invoice_paper.from", + "en": "From" + }, + { + "key": "invoice_paper.invoice", + "en": "Invoice" + }, + { + "key": "invoice_paper.line_total", + "en": "Line total" + }, + { + "key": "invoice_paper.net_amount", + "en": "Net amount" + }, + { + "key": "invoice_paper.payment_account", + "en": "Payment account" + }, + { + "key": "invoice_paper.prepared_for_prompt_processing", + "en": "Prepared for prompt processing." + }, + { + "key": "invoice_paper.unit_cost", + "en": "Unit cost" + }, + { + "key": "invoice_paper.units", + "en": "Units" + }, + { + "key": "invoice_preview.preview", + "en": "Preview" + }, + { + "key": "kanban.open_add_task_menu", + "en": "Open add task menu" + }, + { + "key": "kanban.search_tasks", + "en": "Search tasks" + }, + { + "key": "kpi_cards.1_in_progress_3_upcoming_1_cancelled", + "en": "1 in progress · 3 upcoming · 1 cancelled" + }, + { + "key": "kpi_cards.63_pending_18_overdue", + "en": "63 pending · 18 overdue" + }, + { + "key": "kpi_cards.across_5_grade_11_sections", + "en": "across 5 Grade 11 sections" + }, + { + "key": "kpi_cards.assignments", + "en": "Assignments" + }, + { + "key": "kpi_cards.avg_attendance", + "en": "Avg. Attendance" + }, + { + "key": "kpi_cards.classes_today", + "en": "Classes Today" + }, + { + "key": "kpi_cards.keep_tabs_on_lead_quality_open_opportuni", + "en": "Keep tabs on lead quality, open opportunities, and conversion rates across the current sales cycle." + }, + { + "key": "kpi_cards.last_month", + "en": "last month" + }, + { + "key": "kpi_cards.lead_pipeline_value", + "en": "Lead Pipeline Value" + }, + { + "key": "kpi_cards.lead_to_deal_rate", + "en": "Lead-to-Deal Rate" + }, + { + "key": "kpi_cards.open_opportunities", + "en": "Open Opportunities" + }, + { + "key": "kpi_cards.pipeline_overview", + "en": "Pipeline Overview" + }, + { + "key": "kpi_cards.qualified_lead_rate", + "en": "Qualified Lead Rate" + }, + { + "key": "kpi_cards.students_taught", + "en": "Students Taught" + }, + { + "key": "kpi_cards.vs_last_month", + "en": "vs last month" + }, + { + "key": "kpi_strip.2_4_pts", + "en": "+2.4 pts" + }, + { + "key": "kpi_strip.average_order", + "en": "Average Order" + }, + { + "key": "kpi_strip.customer_growth", + "en": "Customer Growth" + }, + { + "key": "kpi_strip.return_requests", + "en": "Return Requests" + }, + { + "key": "kpi_strip.sales_overview", + "en": "Sales Overview" + }, + { + "key": "kpi_strip.stock_accuracy", + "en": "Stock Accuracy" + }, + { + "key": "kpi_strip.total_orders", + "en": "Total Orders" + }, + { + "key": "kpi_strip.total_sales", + "en": "Total Sales" + }, + { + "key": "kpi_strip.vs_last_audit", + "en": "vs last audit" + }, + { + "key": "kpi_strip.vs_last_month", + "en": "vs last month" + }, + { + "key": "kpi_strip.vs_last_week", + "en": "vs last week" + }, + { + "key": "layout_controls.centered", + "en": "Centered" + }, + { + "key": "layout_controls.customize_your_dashboard_layout_preferen", + "en": "Customize your dashboard layout preferences." + }, + { + "key": "layout_controls.dark", + "en": "Dark" + }, + { + "key": "layout_controls.floating", + "en": "Floating" + }, + { + "key": "layout_controls.fonts", + "en": "Fonts" + }, + { + "key": "layout_controls.full_width", + "en": "Full Width" + }, + { + "key": "layout_controls.icon", + "en": "Icon" + }, + { + "key": "layout_controls.inset", + "en": "Inset" + }, + { + "key": "layout_controls.light", + "en": "Light" + }, + { + "key": "layout_controls.navbar_behavior", + "en": "Navbar Behavior" + }, + { + "key": "layout_controls.offcanvas", + "en": "OffCanvas" + }, + { + "key": "layout_controls.page_layout", + "en": "Page Layout" + }, + { + "key": "layout_controls.preferences", + "en": "Preferences" + }, + { + "key": "layout_controls.preset", + "en": "Preset" + }, + { + "key": "layout_controls.restore_defaults", + "en": "Restore Defaults" + }, + { + "key": "layout_controls.scroll", + "en": "Scroll" + }, + { + "key": "layout_controls.select_font", + "en": "Select font" + }, + { + "key": "layout_controls.sidebar", + "en": "Sidebar" + }, + { + "key": "layout_controls.sidebar_collapse_mode", + "en": "Sidebar Collapse Mode" + }, + { + "key": "layout_controls.sidebar_style", + "en": "Sidebar Style" + }, + { + "key": "layout_controls.sticky", + "en": "Sticky" + }, + { + "key": "layout_controls.system", + "en": "System" + }, + { + "key": "layout_controls.theme_mode", + "en": "Theme Mode" + }, + { + "key": "layout_controls.theme_preset", + "en": "Theme Preset" + }, + { + "key": "layout_controls.toggle_centered", + "en": "Toggle centered" + }, + { + "key": "layout_controls.toggle_dark", + "en": "Toggle dark" + }, + { + "key": "layout_controls.toggle_floating", + "en": "Toggle floating" + }, + { + "key": "layout_controls.toggle_full_width", + "en": "Toggle full-width" + }, + { + "key": "layout_controls.toggle_icon", + "en": "Toggle icon" + }, + { + "key": "layout_controls.toggle_inset", + "en": "Toggle inset" + }, + { + "key": "layout_controls.toggle_light", + "en": "Toggle light" + }, + { + "key": "layout_controls.toggle_offcanvas", + "en": "Toggle offcanvas" + }, + { + "key": "layout_controls.toggle_scroll", + "en": "Toggle scroll" + }, + { + "key": "layout_controls.toggle_sidebar", + "en": "Toggle sidebar" + }, + { + "key": "layout_controls.toggle_sticky", + "en": "Toggle sticky" + }, + { + "key": "layout_controls.toggle_system", + "en": "Toggle system" + }, + { + "key": "layout.check_out_the_docs_or_open_an_issue_on_g", + "en": "Check out the docs or open an issue on GitHub, community support is just a click away." + }, + { + "key": "layout.clone_the_repo_install_dependencies_and", + "en": "Clone the repo, install dependencies, and your dashboard is live in minutes." + }, + { + "key": "layout.design_build_launch_repeat", + "en": "Design. Build. Launch. Repeat." + }, + { + "key": "layout.need_help", + "en": "Need help?" + }, + { + "key": "layout.open_github_repository", + "en": "Open GitHub repository" + }, + { + "key": "layout.ready_to_launch", + "en": "Ready to launch?" + }, + { + "key": "login_form.login", + "en": "Login" + }, + { + "key": "logistics.selected_shipment_details_and_route_map", + "en": "Selected shipment details and route map." + }, + { + "key": "mail_inbox.inbox", + "en": "Inbox" + }, + { + "key": "mail_inbox.search", + "en": "Search..." + }, + { + "key": "mail_sidebar.folders", + "en": "Folders" + }, + { + "key": "mail_sidebar.new_email", + "en": "New email" + }, + { + "key": "mail_view.archive", + "en": "Archive" + }, + { + "key": "mail_view.close_message", + "en": "Close message" + }, + { + "key": "mail_view.more_actions", + "en": "More actions" + }, + { + "key": "mail_view.move_to_trash", + "en": "Move to trash" + }, + { + "key": "mail_view.next_message", + "en": "Next message" + }, + { + "key": "mail_view.pin_thread", + "en": "Pin thread" + }, + { + "key": "mail_view.previous_message", + "en": "Previous message" + }, + { + "key": "mail_view.reply", + "en": "Reply" + }, + { + "key": "mail.loading_mail", + "en": "Loading mail..." + }, + { + "key": "mail.mail_message", + "en": "Mail message" + }, + { + "key": "mail.read_the_selected_email_message", + "en": "Read the selected email message" + }, + { + "key": "metric_cards.acquisition_needs_attention", + "en": "Acquisition needs attention" + }, + { + "key": "metric_cards.active_accounts", + "en": "Active Accounts" + }, + { + "key": "metric_cards.engagement_exceeds_targets", + "en": "Engagement exceeds targets" + }, + { + "key": "metric_cards.growth_rate", + "en": "Growth Rate" + }, + { + "key": "metric_cards.meets_growth_projections", + "en": "Meets growth projections" + }, + { + "key": "metric_cards.new_customers", + "en": "New Customers" + }, + { + "key": "metric_cards.total_revenue", + "en": "Total Revenue" + }, + { + "key": "metric_cards.visitors_for_the_last_6_months", + "en": "Visitors for the last 6 months" + }, + { + "key": "monthly_cash_flow.this_month_net", + "en": "This month · Net" + }, + { + "key": "nav_documents.documents", + "en": "Documents" + }, + { + "key": "nav_documents.more", + "en": "More" + }, + { + "key": "nav_main.inbox", + "en": "Inbox" + }, + { + "key": "nav_main.quick_create", + "en": "Quick Create" + }, + { + "key": "net_worth.3_680_mom", + "en": "+$3,680 MoM" + }, + { + "key": "net_worth.across_all_linked_accounts", + "en": "Across all linked accounts" + }, + { + "key": "net_worth.this_month", + "en": "This month" + }, + { + "key": "not_found.go_back_home", + "en": "Go back home" + }, + { + "key": "not_found.page_not_found", + "en": "Page not found." + }, + { + "key": "not_found.the_page_you_are_looking_for_could_not_b", + "en": "The page you are looking for could not be found." + }, + { + "key": "operational_cards.action_items", + "en": "Action Items" + }, + { + "key": "operational_cards.leads_increased_by_18_2_since_last_month", + "en": "Leads increased by 18.2% since last month." + }, + { + "key": "operational_cards.sales_by_region", + "en": "Sales by Region" + }, + { + "key": "operational_cards.sales_pipeline", + "en": "Sales Pipeline" + }, + { + "key": "opportunities_section.recent_opportunities", + "en": "Recent Opportunities" + }, + { + "key": "opportunities_section.search_deals", + "en": "Search deals..." + }, + { + "key": "opportunities_section.track_qualified_leads_moving_through_dis", + "en": "Track qualified leads moving through discovery, proposal, and closing stages." + }, + { + "key": "overview_cards.35_growth_since_last_year", + "en": "+35% growth since last year" + }, + { + "key": "overview_cards.last_6_months", + "en": "Last 6 Months" + }, + { + "key": "overview_cards.last_month", + "en": "Last Month" + }, + { + "key": "overview_cards.new_leads", + "en": "New Leads" + }, + { + "key": "overview_cards.projects_won", + "en": "Projects Won" + }, + { + "key": "overview_cards.proposals_sent", + "en": "Proposals Sent" + }, + { + "key": "overview_cards.revenue", + "en": "Revenue" + }, + { + "key": "overview_cards.revenue_growth", + "en": "Revenue Growth" + }, + { + "key": "overview_cards.year_to_date_ytd", + "en": "Year to Date (YTD)" + }, + { + "key": "overview_kpis.124_more_than_last_month", + "en": "$124 more than last month" + }, + { + "key": "overview_kpis.410_above_your_30_day_average", + "en": "$410 above your 30-day average" + }, + { + "key": "overview_kpis.9_8k_vs_last_month", + "en": "+$9.8K vs last month" + }, + { + "key": "overview_kpis.available_cash", + "en": "Available cash" + }, + { + "key": "overview_kpis.monthly_spend", + "en": "Monthly spend" + }, + { + "key": "overview_kpis.net_worth", + "en": "Net worth" + }, + { + "key": "overview_kpis.savings_rate", + "en": "Savings rate" + }, + { + "key": "overview_kpis.up_from_25_6_last_month", + "en": "Up from 25.6% last month" + }, + { + "key": "page.academy_dashboard", + "en": "Academy Dashboard" + }, + { + "key": "page.accounts", + "en": "Accounts" + }, + { + "key": "page.accounts_view_coming_soon", + "en": "Accounts view coming soon." + }, + { + "key": "page.acquisition", + "en": "Acquisition" + }, + { + "key": "page.acquisition_view_coming_soon", + "en": "Acquisition view coming soon." + }, + { + "key": "page.activity", + "en": "Activity" + }, + { + "key": "page.add_invoice_details_review_the_preview_a", + "en": "Add invoice details, review the preview, and send it to your client." + }, + { + "key": "page.all_channels", + "en": "All Channels" + }, + { + "key": "page.audience", + "en": "Audience" + }, + { + "key": "page.audience_view_coming_soon", + "en": "Audience view coming soon." + }, + { + "key": "page.chat_preview", + "en": "Chat preview" + }, + { + "key": "page.coming_soon", + "en": "Coming Soon" + }, + { + "key": "page.conversions", + "en": "Conversions" + }, + { + "key": "page.conversions_view_coming_soon", + "en": "Conversions view coming soon." + }, + { + "key": "page.create_new_invoice", + "en": "Create New Invoice" + }, + { + "key": "page.create_your_account", + "en": "Create your account" + }, + { + "key": "page.dashboard", + "en": "Dashboard" + }, + { + "key": "page.engagement", + "en": "Engagement" + }, + { + "key": "page.engagement_view_coming_soon", + "en": "Engagement view coming soon." + }, + { + "key": "page.fill_in_your_details_below_we_promise_no", + "en": "Fill in your details below. We promise not to quiz you about your first pet's name (this time)." + }, + { + "key": "page.go_to_homepage", + "en": "Go to Homepage" + }, + { + "key": "page.good_morning_arham", + "en": "Good morning, Arham." + }, + { + "key": "page.good_morning_teacher_heres_a_quick_overv", + "en": "Good morning, Teacher. Here's a quick overview of today's activity." + }, + { + "key": "page.hello_again", + "en": "Hello again" + }, + { + "key": "page.hello_aiy", + "en": "Hello, Aiy" + }, + { + "key": "page.heres_a_list_of_your_tasks_for_this_mont", + "en": "Here's a list of your tasks for this month!" + }, + { + "key": "page.insights", + "en": "Insights" + }, + { + "key": "page.last_30_days", + "en": "Last 30 Days" + }, + { + "key": "page.last_month", + "en": "Last Month" + }, + { + "key": "page.let_apos_s_make_today_productive_and_mea", + "en": "Let's make today productive and meaningful." + }, + { + "key": "page.login", + "en": "Login" + }, + { + "key": "page.login_to_continue", + "en": "Login to continue" + }, + { + "key": "page.login_to_your_account", + "en": "Login to your account" + }, + { + "key": "page.mail_preview", + "en": "Mail preview" + }, + { + "key": "page.marketplace", + "en": "Marketplace" + }, + { + "key": "page.monitor_traffic_engagement_and_conversio", + "en": "Monitor traffic, engagement, and conversion performance in one view." + }, + { + "key": "page.online_store", + "en": "Online Store" + }, + { + "key": "page.open_chat_in_new_tab", + "en": "Open chat in new tab" + }, + { + "key": "page.open_mail_in_new_tab", + "en": "Open mail in new tab" + }, + { + "key": "page.or_continue_with", + "en": "Or continue with" + }, + { + "key": "page.overview", + "en": "Overview" + }, + { + "key": "page.page_not_found", + "en": "Page not found." + }, + { + "key": "page.personal_finances", + "en": "Personal Finances" + }, + { + "key": "page.please_enter_your_details_to_login", + "en": "Please enter your details to login." + }, + { + "key": "page.please_enter_your_details_to_register", + "en": "Please enter your details to register." + }, + { + "key": "page.register", + "en": "Register" + }, + { + "key": "page.retail", + "en": "Retail" + }, + { + "key": "page.social", + "en": "Social" + }, + { + "key": "page.store_overview", + "en": "Store Overview" + }, + { + "key": "page.this_iframe_shows_the_standalone_chat_sc", + "en": "This iframe shows the standalone chat screen. Open it in full screen for a better view." + }, + { + "key": "page.this_iframe_shows_the_standalone_mail_sc", + "en": "This iframe shows the standalone mail screen. Open it in full screen for a better view." + }, + { + "key": "page.this_month", + "en": "This Month" + }, + { + "key": "page.this_page_is_under_development_and_will", + "en": "This page is under development and will be available in future updates." + }, + { + "key": "page.this_section_will_be_added_in_future_upd", + "en": "This section will be added in future updates." + }, + { + "key": "page.transactions", + "en": "Transactions" + }, + { + "key": "page.transactions_view_coming_soon", + "en": "Transactions view coming soon." + }, + { + "key": "page.unauthorized_access", + "en": "Unauthorized Access" + }, + { + "key": "page.updated_5_min_ago", + "en": "Updated 5 min ago" + }, + { + "key": "page.utilities", + "en": "Utilities" + }, + { + "key": "page.welcome", + "en": "Welcome!" + }, + { + "key": "page.welcome_back", + "en": "Welcome back!" + }, + { + "key": "page.welcome_back_enter_your_email_and_passwo", + "en": "Welcome back. Enter your email and password, let's hope you remember them this time." + }, + { + "key": "page.year_to_date", + "en": "Year to Date" + }, + { + "key": "page.you_apos_re_in_the_right_place", + "en": "You're in the right place." + }, + { + "key": "page.you_do_not_have_permission_to_view_the_r", + "en": "You do not have permission to view the requested content. Please contact the site administrator if you believe this is an error." + }, + { + "key": "pagination.go_to_next_page", + "en": "Go to next page" + }, + { + "key": "pagination.go_to_previous_page", + "en": "Go to previous page" + }, + { + "key": "pagination.more_pages", + "en": "More pages" + }, + { + "key": "pagination.pagination", + "en": "pagination" + }, + { + "key": "performance_highlights.performance_highlights", + "en": "Performance Highlights" + }, + { + "key": "performance_overview.3_months", + "en": "3 months" + }, + { + "key": "performance_overview.all_segments", + "en": "All segments" + }, + { + "key": "performance_overview.customer_activity", + "en": "Customer Activity" + }, + { + "key": "performance_overview.customer_activity_for_the_last_3_months", + "en": "Customer activity for the last 3 months" + }, + { + "key": "performance_overview.last_3_months", + "en": "Last 3 months" + }, + { + "key": "performance_overview.organic", + "en": "Organic" + }, + { + "key": "performance_overview.paid", + "en": "Paid" + }, + { + "key": "performance_overview.period", + "en": "Period" + }, + { + "key": "performance_overview.segments", + "en": "Segments" + }, + { + "key": "performance_overview.view_report", + "en": "View report" + }, + { + "key": "pipeline_activity.discovery_calls_booked", + "en": "Discovery Calls Booked" + }, + { + "key": "pipeline_activity.last_12_months", + "en": "Last 12 months" + }, + { + "key": "pipeline_activity.last_30_days", + "en": "Last 30 days" + }, + { + "key": "pipeline_activity.last_quarter", + "en": "Last quarter" + }, + { + "key": "pipeline_activity.leads", + "en": "leads" + }, + { + "key": "pipeline_activity.meetings", + "en": "meetings" + }, + { + "key": "pipeline_activity.qualified_lead_flow", + "en": "Qualified Lead Flow" + }, + { + "key": "pipeline_activity.select_range", + "en": "Select range" + }, + { + "key": "pipeline_activity.total_qualified_leads_captured_over_the", + "en": "Total qualified leads captured over the last 12 months." + }, + { + "key": "primary_account.available_balance", + "en": "Available balance" + }, + { + "key": "primary_account.pay", + "en": "Pay" + }, + { + "key": "primary_account.request", + "en": "Request" + }, + { + "key": "project_environments.environment", + "en": "Environment" + }, + { + "key": "project_environments.health", + "en": "Health" + }, + { + "key": "project_environments.latency", + "en": "Latency" + }, + { + "key": "project_environments.no_environments_in_this_project", + "en": "No environments in this project" + }, + { + "key": "project_environments.platform", + "en": "Platform" + }, + { + "key": "project_environments.resources", + "en": "Resources" + }, + { + "key": "project_environments.server", + "en": "Server" + }, + { + "key": "project_environments.uptime", + "en": "Uptime" + }, + { + "key": "projects_section.active", + "en": "Active" + }, + { + "key": "projects_section.completed", + "en": "Completed" + }, + { + "key": "projects_section.planning", + "en": "Planning" + }, + { + "key": "projects_section.projects", + "en": "Projects" + }, + { + "key": "quick_actions.quick_actions", + "en": "Quick Actions" + }, + { + "key": "quick_actions.quick_transfer", + "en": "Quick Transfer" + }, + { + "key": "quick_actions.send", + "en": "Send" + }, + { + "key": "quick_actions.shortcuts", + "en": "Shortcuts" + }, + { + "key": "quick_actions.usd", + "en": "USD" + }, + { + "key": "quote_card.keep_showing_up_you_apos_ve_got_this", + "en": "Keep showing up. You've got this." + }, + { + "key": "quote_card.small_consistent_actions_lead_to_big_res", + "en": "Small, consistent actions lead to big results." + }, + { + "key": "realtime_visitors.canada", + "en": "Canada" + }, + { + "key": "realtime_visitors.india", + "en": "India" + }, + { + "key": "realtime_visitors.live", + "en": "Live" + }, + { + "key": "realtime_visitors.per_minute", + "en": "per minute" + }, + { + "key": "realtime_visitors.realtime_visitors", + "en": "Realtime Visitors" + }, + { + "key": "realtime_visitors.united_kingdom", + "en": "United Kingdom" + }, + { + "key": "realtime_visitors.united_states", + "en": "United States" + }, + { + "key": "recent_notes_card.recent_notes", + "en": "Recent Notes" + }, + { + "key": "recent_notes_card.view_all", + "en": "View all" + }, + { + "key": "recent_orders.download_orders", + "en": "Download orders" + }, + { + "key": "recent_orders.open_orders", + "en": "Open orders" + }, + { + "key": "recent_orders.recent_orders", + "en": "Recent Orders" + }, + { + "key": "register_form.register", + "en": "Register" + }, + { + "key": "roles.3_roles_have_unreviewed_permission_chang", + "en": "3 roles have unreviewed permission changes." + }, + { + "key": "roles.access_reviews", + "en": "Access reviews" + }, + { + "key": "roles.access_reviews_coming_soon", + "en": "Access Reviews Coming Soon" + }, + { + "key": "roles.active", + "en": "Active" + }, + { + "key": "roles.alex_kim", + "en": "Alex Kim" + }, + { + "key": "roles.all", + "en": "All" + }, + { + "key": "roles.chris_lee", + "en": "Chris Lee" + }, + { + "key": "roles.create_role", + "en": "Create role" + }, + { + "key": "roles.custom", + "en": "Custom" + }, + { + "key": "roles.jane_doe", + "en": "Jane Doe" + }, + { + "key": "roles.manage_access_roles_and_permissions_acro", + "en": "Manage access roles and permissions across your organization." + }, + { + "key": "roles.needs_review", + "en": "Needs review" + }, + { + "key": "roles.owner", + "en": "Owner:" + }, + { + "key": "roles.permission_sets", + "en": "Permission sets" + }, + { + "key": "roles.permission_sets_coming_soon", + "en": "Permission Sets Coming Soon" + }, + { + "key": "roles.review_required", + "en": "Review required" + }, + { + "key": "roles.roles", + "en": "Roles" + }, + { + "key": "roles.roles_permissions", + "en": "Roles & Permissions" + }, + { + "key": "roles.search_roles", + "en": "Search roles..." + }, + { + "key": "roles.status", + "en": "Status:" + }, + { + "key": "roles.system", + "en": "System" + }, + { + "key": "roles.type", + "en": "Type:" + }, + { + "key": "savings_rate.3_5_mom", + "en": "+3.5% MoM" + }, + { + "key": "savings_rate.above_your_average", + "en": "Above your average" + }, + { + "key": "savings_rate.this_month_after_expenses", + "en": "This month · After expenses" + }, + { + "key": "search_dialog.no_results_found", + "en": "No results found." + }, + { + "key": "search_dialog.search_dashboards_users_and_more", + "en": "Search dashboards, users, and more…" + }, + { + "key": "section_cards.acquisition_needs_attention", + "en": "Acquisition needs attention" + }, + { + "key": "section_cards.active_accounts", + "en": "Active Accounts" + }, + { + "key": "section_cards.engagement_exceed_targets", + "en": "Engagement exceed targets" + }, + { + "key": "section_cards.growth_rate", + "en": "Growth Rate" + }, + { + "key": "section_cards.meets_growth_projections", + "en": "Meets growth projections" + }, + { + "key": "section_cards.new_customers", + "en": "New Customers" + }, + { + "key": "section_cards.total_revenue", + "en": "Total Revenue" + }, + { + "key": "section_cards.visitors_for_the_last_6_months", + "en": "Visitors for the last 6 months" + }, + { + "key": "shipment_details.activity", + "en": "Activity" + }, + { + "key": "shipment_details.activity_view_coming_soon", + "en": "Activity view coming soon." + }, + { + "key": "shipment_details.cargo", + "en": "Cargo" + }, + { + "key": "shipment_details.cargo_details", + "en": "Cargo details" + }, + { + "key": "shipment_details.cargo_view_coming_soon", + "en": "Cargo view coming soon." + }, + { + "key": "shipment_details.copy_shipment_id", + "en": "Copy shipment ID" + }, + { + "key": "shipment_details.documents", + "en": "Documents" + }, + { + "key": "shipment_details.documents_view_coming_soon", + "en": "Documents view coming soon." + }, + { + "key": "shipment_details.overview", + "en": "Overview" + }, + { + "key": "shipment_details.route", + "en": "Route" + }, + { + "key": "shipment_details.route_view_coming_soon", + "en": "Route view coming soon." + }, + { + "key": "shipment_details.select_a_shipment_to_view_details", + "en": "Select a shipment to view details." + }, + { + "key": "shipment_details.status", + "en": "Status" + }, + { + "key": "shipment_details.total_weight", + "en": "Total weight" + }, + { + "key": "shipment_details.transport_mode", + "en": "Transport mode" + }, + { + "key": "shipment_list.all_156", + "en": "All (156)" + }, + { + "key": "shipment_list.cargo", + "en": "Cargo" + }, + { + "key": "shipment_list.delayed_9", + "en": "Delayed (9)" + }, + { + "key": "shipment_list.delivered_98", + "en": "Delivered (98)" + }, + { + "key": "shipment_list.eta", + "en": "ETA" + }, + { + "key": "shipment_list.in_transit_32", + "en": "In Transit (32)" + }, + { + "key": "shipment_list.search_shipments", + "en": "Search shipments" + }, + { + "key": "shipment_list.search_shipments_2", + "en": "Search shipments..." + }, + { + "key": "shipment_list.shipments", + "en": "Shipments" + }, + { + "key": "shipment_route_map.southeast_asia_shipment_region_map", + "en": "Southeast Asia shipment region map" + }, + { + "key": "sidebar_support_card.looking_for_something_more", + "en": "Looking for something more?" + }, + { + "key": "sidebar_support_card.reach_out_on_x", + "en": "Reach out on X" + }, + { + "key": "sidebar.displays_the_mobile_sidebar", + "en": "Displays the mobile sidebar." + }, + { + "key": "sidebar.sidebar", + "en": "Sidebar" + }, + { + "key": "sidebar.toggle_sidebar", + "en": "Toggle Sidebar" + }, + { + "key": "spending_breakdown.expense_distribution_by_category", + "en": "Expense distribution by category." + }, + { + "key": "spending_breakdown.spending_breakdown", + "en": "Spending Breakdown" + }, + { + "key": "spinner.loading", + "en": "Loading" + }, + { + "key": "store_traffic.12_9k_visits", + "en": "12.9K visits" + }, + { + "key": "store_traffic.store_traffic", + "en": "Store Traffic" + }, + { + "key": "subscriber_overview.18_426_customers", + "en": "18,426 Customers" + }, + { + "key": "subscriber_overview.recent_customer_records_with_plan_billin", + "en": "Recent customer records with plan, billing, status, and signup activity." + }, + { + "key": "table.add_section", + "en": "Add Section" + }, + { + "key": "table.export", + "en": "Export" + }, + { + "key": "table.focus_documents", + "en": "Focus Documents" + }, + { + "key": "table.go_to_first_page", + "en": "Go to first page" + }, + { + "key": "table.go_to_last_page", + "en": "Go to last page" + }, + { + "key": "table.go_to_next_page", + "en": "Go to next page" + }, + { + "key": "table.go_to_previous_page", + "en": "Go to previous page" + }, + { + "key": "table.outline", + "en": "Outline" + }, + { + "key": "table.recent_leads", + "en": "Recent Leads" + }, + { + "key": "table.rows_per_page", + "en": "Rows per page" + }, + { + "key": "table.search_customers", + "en": "Search customers..." + }, + { + "key": "table.select_a_view", + "en": "Select a view" + }, + { + "key": "table.toggle_columns", + "en": "Toggle columns" + }, + { + "key": "table.track_and_manage_your_latest_leads_and_t", + "en": "Track and manage your latest leads and their status." + }, + { + "key": "table.view", + "en": "View" + }, + { + "key": "task_reminders.monthly_proposal_goal", + "en": "Monthly Proposal Goal" + }, + { + "key": "task_reminders.product_demo_with_tim", + "en": "Product demo with Tim" + }, + { + "key": "task_reminders.sent", + "en": "sent" + }, + { + "key": "task_reminders.upcoming_meetings", + "en": "Upcoming Meetings" + }, + { + "key": "task_reminders.weblabs_studio", + "en": "Weblabs Studio" + }, + { + "key": "tasks_section.tasks", + "en": "Tasks" + }, + { + "key": "tasks_section.this_week", + "en": "This Week" + }, + { + "key": "tasks_section.today", + "en": "Today" + }, + { + "key": "tasks_section.tomorrow", + "en": "Tomorrow" + }, + { + "key": "tasks_toolbar.filter_tasks", + "en": "Filter tasks..." + }, + { + "key": "tasks_toolbar.toggle_columns", + "en": "Toggle columns" + }, + { + "key": "tasks.go_to_first_page", + "en": "Go to first page" + }, + { + "key": "tasks.go_to_last_page", + "en": "Go to last page" + }, + { + "key": "tasks.prev", + "en": "Prev" + }, + { + "key": "tasks.rows_per_page", + "en": "Rows per page" + }, + { + "key": "top_pages.avg_time", + "en": "Avg Time" + }, + { + "key": "top_pages.bounce", + "en": "Bounce" + }, + { + "key": "top_pages.page_performance", + "en": "Page Performance" + }, + { + "key": "top_pages.views", + "en": "Views" + }, + { + "key": "top_products.73_of_sales", + "en": "73% of sales" + }, + { + "key": "top_products.products", + "en": "Products" + }, + { + "key": "top_products.sales", + "en": "Sales" + }, + { + "key": "top_products.sales_by_category", + "en": "Sales by category" + }, + { + "key": "top_products.share", + "en": "Share" + }, + { + "key": "top_products.top_products", + "en": "Top Products" + }, + { + "key": "top_traffic_sources.campaigns", + "en": "Campaigns" + }, + { + "key": "top_traffic_sources.referrers", + "en": "Referrers" + }, + { + "key": "top_traffic_sources.sources", + "en": "Sources" + }, + { + "key": "top_traffic_sources.traffic_sources", + "en": "Traffic Sources" + }, + { + "key": "traffic_quality.traffic_quality", + "en": "Traffic Quality" + }, + { + "key": "traffic_sources.14_8k_visits", + "en": "14.8K visits" + }, + { + "key": "traffic_sources.traffic_sources", + "en": "Traffic Sources" + }, + { + "key": "transactions_overview_card.monthly", + "en": "Monthly" + }, + { + "key": "transactions_overview_card.spending_overview", + "en": "Spending Overview" + }, + { + "key": "transactions_overview_card.weekly", + "en": "Weekly" + }, + { + "key": "transactions_overview_card.yearly", + "en": "Yearly" + }, + { + "key": "upcoming_events.upcoming_events", + "en": "Upcoming Events" + }, + { + "key": "upcoming_transactions.upcoming_bills_payments", + "en": "Upcoming Bills & Payments" + }, + { + "key": "users_columns.actions", + "en": "Actions" + }, + { + "key": "users_columns.deactivate_user", + "en": "Deactivate user" + }, + { + "key": "users_columns.edit_user", + "en": "Edit user" + }, + { + "key": "users_columns.manage_team", + "en": "Manage team" + }, + { + "key": "users_columns.resend_invite", + "en": "Resend invite" + }, + { + "key": "users_columns.select_all_users", + "en": "Select all users" + }, + { + "key": "users_columns.view_profile", + "en": "View profile" + }, + { + "key": "users_table.rows_per_page", + "en": "Rows per page" + }, + { + "key": "users.grid_view", + "en": "Grid view" + }, + { + "key": "users.k", + "en": "⌘K" + }, + { + "key": "users.list_view", + "en": "List view" + }, + { + "key": "users.manage_your_organization_members_and_the", + "en": "Manage your organization members and their access." + }, + { + "key": "users.role", + "en": "Role:" + }, + { + "key": "users.search_users", + "en": "Search users..." + }, + { + "key": "users.status", + "en": "Status:" + }, + { + "key": "users.team", + "en": "Team:" + }, + { + "key": "users.users", + "en": "Users" + }, + { + "key": "users.workspace", + "en": "Workspace:" + }, + { + "key": "wallet.air_gapped", + "en": "Air-Gapped" + }, + { + "key": "wallet.wallet", + "en": "Wallet" + }, + { + "key": "weekly_summary_card.4_of_6_goals_completed", + "en": "4 of 6 goals completed" + }, + { + "key": "weekly_summary_card.this_week", + "en": "This Week" + }, + { + "key": "weekly_summary_card.view_all", + "en": "View all" + }, + { + "key": "weekly_summary_card.youre_doing_great_keep_the_momentum_goin", + "en": "You’re doing great. Keep the momentum going." + } +] diff --git a/next.config.mjs b/next.config.mjs index c4ef153..e1218b0 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -1,3 +1,6 @@ +import createNextIntlPlugin from 'next-intl/plugin'; +const withNextIntl = createNextIntlPlugin(); + /** @type {import('next').NextConfig} */ const nextConfig = { reactCompiler: true, @@ -15,4 +18,4 @@ const nextConfig = { }, }; -export default nextConfig; +export default withNextIntl(nextConfig); diff --git a/package.json b/package.json index 6834642..3318acc 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,9 @@ "generate:presets": "ts-node -P tsconfig.scripts.json src/scripts/generate-theme-presets.ts" }, "lint-staged": { - "*.{js,ts,jsx,tsx}": ["biome check --write --no-errors-on-unmatched"] + "*.{js,ts,jsx,tsx}": [ + "biome check --write --no-errors-on-unmatched" + ] }, "dependencies": { "@base-ui/react": "^1.6.0", @@ -51,7 +53,8 @@ "topojson-client": "^3.1.0", "vaul": "^1.1.2", "zod": "^4.4.3", - "zustand": "^5.0.14" + "zustand": "^5.0.14", + "next-intl": "^4.0.0" }, "devDependencies": { "@biomejs/biome": "^2.5.1", diff --git a/src/app/(external)/page.tsx b/src/app/(external)/page.tsx index b7902fb..8ba36bd 100644 --- a/src/app/(external)/page.tsx +++ b/src/app/(external)/page.tsx @@ -1,6 +1,8 @@ +import { useTranslations } from 'next-intl'; import { redirect } from "next/navigation"; export default function Home() { + const t = useTranslations(); redirect("/dashboard/default"); - return <>Coming Soon; + return <>{t('page.coming_soon')}; } diff --git a/src/app/(main)/auth/_components/login-form.tsx b/src/app/(main)/auth/_components/login-form.tsx index b3533c0..9d0926a 100644 --- a/src/app/(main)/auth/_components/login-form.tsx +++ b/src/app/(main)/auth/_components/login-form.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import { zodResolver } from "@hookform/resolvers/zod"; import { Controller, useForm } from "react-hook-form"; @@ -17,6 +18,7 @@ const formSchema = z.object({ }); export function LoginForm() { + const t = useTranslations(); const form = useForm>({ resolver: zodResolver(formSchema), defaultValues: { @@ -98,7 +100,7 @@ export function LoginForm() { /> ); diff --git a/src/app/(main)/auth/_components/register-form.tsx b/src/app/(main)/auth/_components/register-form.tsx index 5d5733d..7c49656 100644 --- a/src/app/(main)/auth/_components/register-form.tsx +++ b/src/app/(main)/auth/_components/register-form.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import { zodResolver } from "@hookform/resolvers/zod"; import { Controller, useForm } from "react-hook-form"; @@ -21,6 +22,7 @@ const formSchema = z }); export function RegisterForm() { + const t = useTranslations(); const form = useForm>({ resolver: zodResolver(formSchema), defaultValues: { @@ -99,7 +101,7 @@ export function RegisterForm() { /> ); diff --git a/src/app/(main)/auth/v1/login/page.tsx b/src/app/(main)/auth/v1/login/page.tsx index 160fce4..2948098 100644 --- a/src/app/(main)/auth/v1/login/page.tsx +++ b/src/app/(main)/auth/v1/login/page.tsx @@ -1,3 +1,4 @@ +import { useTranslations } from 'next-intl'; import Link from "next/link"; import { Command } from "lucide-react"; @@ -6,6 +7,7 @@ import { LoginForm } from "../../_components/login-form"; import { GoogleButton } from "../../_components/social-auth/google-button"; export default function LoginV1() { + const t = useTranslations(); return (
@@ -13,8 +15,8 @@ export default function LoginV1() {
-

Hello again

-

Login to continue

+

{t('page.hello_again')}

+

{t('page.login_to_continue')}

@@ -23,9 +25,9 @@ export default function LoginV1() {
-
Login
+
{t('page.login')}
- Welcome back. Enter your email and password, let's hope you remember them this time. + {t('page.welcome_back_enter_your_email_and_passwo')}
diff --git a/src/app/(main)/auth/v1/register/page.tsx b/src/app/(main)/auth/v1/register/page.tsx index 155bfb4..36f5ddc 100644 --- a/src/app/(main)/auth/v1/register/page.tsx +++ b/src/app/(main)/auth/v1/register/page.tsx @@ -1,3 +1,4 @@ +import { useTranslations } from 'next-intl'; import Link from "next/link"; import { Command } from "lucide-react"; @@ -6,14 +7,15 @@ import { RegisterForm } from "../../_components/register-form"; import { GoogleButton } from "../../_components/social-auth/google-button"; export default function RegisterV1() { + const t = useTranslations(); return (
-
Register
+
{t('page.register')}
- Fill in your details below. We promise not to quiz you about your first pet's name (this time). + {t('page.fill_in_your_details_below_we_promise_no')}
@@ -34,8 +36,8 @@ export default function RegisterV1() {
-

Welcome!

-

You're in the right place.

+

{t('page.welcome')}

+

{t('page.you_apos_re_in_the_right_place')}

diff --git a/src/app/(main)/auth/v2/layout.tsx b/src/app/(main)/auth/v2/layout.tsx index db6a2bb..65f1c86 100644 --- a/src/app/(main)/auth/v2/layout.tsx +++ b/src/app/(main)/auth/v2/layout.tsx @@ -1,3 +1,4 @@ +import { useTranslations } from 'next-intl'; import type { ReactNode } from "react"; import { Command } from "lucide-react"; @@ -6,6 +7,7 @@ import { Separator } from "@/components/ui/separator"; import { APP_CONFIG } from "@/config/app-config"; export default function Layout({ children }: Readonly<{ children: ReactNode }>) { + const t = useTranslations(); return (
@@ -13,19 +15,19 @@ export default function Layout({ children }: Readonly<{ children: ReactNode }>)

{APP_CONFIG.name}

-

Design. Build. Launch. Repeat.

+

{t('layout.design_build_launch_repeat')}

-

Ready to launch?

-

Clone the repo, install dependencies, and your dashboard is live in minutes.

+

{t('layout.ready_to_launch')}

+

{t('layout.clone_the_repo_install_dependencies_and')}

-

Need help?

+

{t('layout.need_help')}

- Check out the docs or open an issue on GitHub, community support is just a click away. + {t('layout.check_out_the_docs_or_open_an_issue_on_g')}

diff --git a/src/app/(main)/auth/v2/login/page.tsx b/src/app/(main)/auth/v2/login/page.tsx index 5f09a4b..d67d6a4 100644 --- a/src/app/(main)/auth/v2/login/page.tsx +++ b/src/app/(main)/auth/v2/login/page.tsx @@ -1,3 +1,4 @@ +import { useTranslations } from 'next-intl'; import Link from "next/link"; import { Globe } from "lucide-react"; @@ -8,17 +9,18 @@ import { LoginForm } from "../../_components/login-form"; import { GoogleButton } from "../../_components/social-auth/google-button"; export default function LoginV2() { + const t = useTranslations(); return ( <>
-

Login to your account

-

Please enter your details to login.

+

{t('page.login_to_your_account')}

+

{t('page.please_enter_your_details_to_login')}

- Or continue with + {t('page.or_continue_with')}
diff --git a/src/app/(main)/auth/v2/register/page.tsx b/src/app/(main)/auth/v2/register/page.tsx index 7675f28..753470f 100644 --- a/src/app/(main)/auth/v2/register/page.tsx +++ b/src/app/(main)/auth/v2/register/page.tsx @@ -1,3 +1,4 @@ +import { useTranslations } from 'next-intl'; import Link from "next/link"; import { Globe } from "lucide-react"; @@ -8,17 +9,18 @@ import { RegisterForm } from "../../_components/register-form"; import { GoogleButton } from "../../_components/social-auth/google-button"; export default function RegisterV2() { + const t = useTranslations(); return ( <>
-

Create your account

-

Please enter your details to register.

+

{t('page.create_your_account')}

+

{t('page.please_enter_your_details_to_register')}

- Or continue with + {t('page.or_continue_with')}
diff --git a/src/app/(main)/chat/_components/chat-conversation-list.tsx b/src/app/(main)/chat/_components/chat-conversation-list.tsx index 0381059..0ce79d0 100644 --- a/src/app/(main)/chat/_components/chat-conversation-list.tsx +++ b/src/app/(main)/chat/_components/chat-conversation-list.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import { ChevronDown, Filter, PanelRightClose, PanelRightOpen, Pin } from "lucide-react"; @@ -21,6 +22,7 @@ interface ChatConversationListProps { } export function ChatConversationList({ conversations, onSelectConversation, className }: ChatConversationListProps) { + const t = useTranslations(); const [chat, setChat] = useChat(); const { state, toggleSidebar } = useSidebar(); const isCollapsed = state === "collapsed"; @@ -50,7 +52,7 @@ export function ChatConversationList({ conversations, onSelectConversation, clas {isCollapsed ? : } -

Inbox

+

{t('chat_conversation_list.inbox')}

- -
diff --git a/src/app/(main)/chat/_components/chat-profile-details.tsx b/src/app/(main)/chat/_components/chat-profile-details.tsx index 3445036..505100d 100644 --- a/src/app/(main)/chat/_components/chat-profile-details.tsx +++ b/src/app/(main)/chat/_components/chat-profile-details.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import { Building2, @@ -32,6 +33,7 @@ interface ChatProfileDetailsProps { } export function ChatProfileDetails({ contact, onClose }: ChatProfileDetailsProps) { + const t = useTranslations(); return (
@@ -44,34 +46,34 @@ export function ChatProfileDetails({ contact, onClose }: ChatProfileDetailsProps
{contact.role}
-
- - - - -
- Details - Files - Activity + {t('chat_profile_details.details')} + {t('chat_profile_details.files')} + {t('chat_profile_details.activity')} @@ -79,17 +81,17 @@ export function ChatProfileDetails({ contact, onClose }: ChatProfileDetailsProps
- Email + {t('chat_profile_details.email')} {contact.email}
- Phone + {t('chat_profile_details.phone')} {contact.phone}
- Website + {t('chat_profile_details.website')} {contact.website}
@@ -99,29 +101,29 @@ export function ChatProfileDetails({ contact, onClose }: ChatProfileDetailsProps
- Company + {t('chat_profile_details.company')} {contact.company}
- Role + {t('chat_profile_details.role')} {contact.role}
- Stage + {t('chat_profile_details.stage')} {contact.status}
- Qualified since + {t('chat_profile_details.qualified_since')} {contact.qualifiedAt}
- Timezone + {t('chat_profile_details.timezone')} {contact.timezone}
@@ -131,12 +133,12 @@ export function ChatProfileDetails({ contact, onClose }: ChatProfileDetailsProps
- Location + {t('chat_profile_details.location')} {contact.location}
- Tags + {t('chat_profile_details.tags')}
{contact.tags.map((tag) => ( diff --git a/src/app/(main)/chat/_components/chat-sidebar.tsx b/src/app/(main)/chat/_components/chat-sidebar.tsx index dc88e56..ff9f0bf 100644 --- a/src/app/(main)/chat/_components/chat-sidebar.tsx +++ b/src/app/(main)/chat/_components/chat-sidebar.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import { EllipsisVertical, LogOut, Settings, UserRound } from "lucide-react"; import { siFacebook, siInstagram, siWhatsapp } from "simple-icons"; @@ -38,6 +39,7 @@ const channelBrandIcons = { } as const; export function ChatSidebar() { + const t = useTranslations(); const { state } = useSidebar(); const _isCollapsed = state === "collapsed"; @@ -62,7 +64,7 @@ export function ChatSidebar() { - Channels + {t('chat_sidebar.channels')} {channelItems.map((item) => ( @@ -81,7 +83,7 @@ export function ChatSidebar() { - Views + {t('chat_sidebar.views')} {viewItems.map((item) => ( diff --git a/src/app/(main)/chat/_components/chat-thread.tsx b/src/app/(main)/chat/_components/chat-thread.tsx index 903d78a..02088f8 100644 --- a/src/app/(main)/chat/_components/chat-thread.tsx +++ b/src/app/(main)/chat/_components/chat-thread.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import { AlarmClock, @@ -56,6 +57,7 @@ interface ChatThreadProps { } export function ChatThread({ contact, messages, onOpenContact, onBack, showBackButton, className }: ChatThreadProps) { + const t = useTranslations(); return (
@@ -85,31 +87,31 @@ export function ChatThread({ contact, messages, onOpenContact, onBack, showBackB
- - Call + {t('chat_thread.call')} - - Tag + {t('chat_thread.tag')} - - Snooze + {t('chat_thread.snooze')} - @@ -130,7 +132,7 @@ export function ChatThread({ contact, messages, onOpenContact, onBack, showBackB - Block contact + {t('chat_thread.block_contact')} @@ -145,7 +147,7 @@ export function ChatThread({ contact, messages, onOpenContact, onBack, showBackB - May 6, 2026 + {t('chat_thread.may_6_2026')} {messages.map((message) => { @@ -203,18 +205,18 @@ export function ChatThread({ contact, messages, onOpenContact, onBack, showBackB className="w-full justify-start gap-2 border-b px-3 **:data-[slot=tabs-trigger]:border-x-0 **:data-[slot=tabs-trigger]:px-6 group-data-horizontal/tabs:h-10" > - Reply + {t('chat_thread.reply')} - Internal note + {t('chat_thread.internal_note')} - + - +
@@ -223,6 +225,7 @@ export function ChatThread({ contact, messages, onOpenContact, onBack, showBackB } function MessageComposer({ placeholder }: { placeholder: string }) { + const t = useTranslations(); return (
- + - + - + - + - + - Send + {t('chat_thread.send')} diff --git a/src/app/(main)/dashboard/(legacy)/analytics-v1/_components/analytics-actions-manager-queue.tsx b/src/app/(main)/dashboard/(legacy)/analytics-v1/_components/analytics-actions-manager-queue.tsx index 603104a..4783497 100644 --- a/src/app/(main)/dashboard/(legacy)/analytics-v1/_components/analytics-actions-manager-queue.tsx +++ b/src/app/(main)/dashboard/(legacy)/analytics-v1/_components/analytics-actions-manager-queue.tsx @@ -1,3 +1,4 @@ +import { useTranslations } from 'next-intl'; import { Badge } from "@/components/ui/badge"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { formatCurrency } from "@/lib/utils"; @@ -27,44 +28,45 @@ const NEXT_INTERVENTIONS = [ ] as const; export function ActionsManagerQueue() { + const t = useTranslations(); return ( - Manager Action Queue - Escalate, coach, and reforecast before commit call + {t('analytics_actions_manager_queue.manager_action_queue')} + {t('analytics_actions_manager_queue.escalate_coach_and_reforecast_before_com')}
- - - - + + + +
-

Intervention mix

+

{t('analytics_actions_manager_queue.intervention_mix')}

Escalate {formatCurrency(174000, { noDecimals: true })}
- Escalate + {t('analytics_actions_manager_queue.escalate')} 1 deals · 14% · {formatCurrency(174000, { noDecimals: true })}
- Coach + {t('analytics_actions_manager_queue.coach')} 4 deals · 57% · {formatCurrency(478000, { noDecimals: true })}
- Reforecast + {t('analytics_actions_manager_queue.reforecast')} 2 deals · 29% · {formatCurrency(159000, { noDecimals: true })} @@ -74,25 +76,25 @@ export function ActionsManagerQueue() {
-

Manager focus

- This forecast cycle +

{t('analytics_actions_manager_queue.manager_focus')}

+ {t('analytics_actions_manager_queue.this_forecast_cycle')}
- Coach queue + {t('analytics_actions_manager_queue.coach_queue')} 4 deals · {formatCurrency(478000, { noDecimals: true })}
- Primary owner - Leila Zhang · 3 deals + {t('analytics_actions_manager_queue.primary_owner')} + {t('analytics_actions_manager_queue.leila_zhang_3_deals')}
- Stale pipeline + {t('analytics_actions_manager_queue.stale_pipeline')} 8 deals · {formatCurrency(1151000, { noDecimals: true })} @@ -101,7 +103,7 @@ export function ActionsManagerQueue() {
-

Next interventions

+

{t('analytics_actions_manager_queue.next_interventions')}

{NEXT_INTERVENTIONS.map((item) => (
@@ -120,8 +122,8 @@ export function ActionsManagerQueue() {
- No-action monitor - 3 Deals + {t('analytics_actions_manager_queue.no_action_monitor')} + {t('analytics_actions_manager_queue.3_deals')}
diff --git a/src/app/(main)/dashboard/(legacy)/analytics-v1/_components/analytics-drivers-coverage-triage.tsx b/src/app/(main)/dashboard/(legacy)/analytics-v1/_components/analytics-drivers-coverage-triage.tsx index f9a4c33..ca3b823 100644 --- a/src/app/(main)/dashboard/(legacy)/analytics-v1/_components/analytics-drivers-coverage-triage.tsx +++ b/src/app/(main)/dashboard/(legacy)/analytics-v1/_components/analytics-drivers-coverage-triage.tsx @@ -1,8 +1,10 @@ +import { useTranslations } from 'next-intl'; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; export function DriversCoverageTriage() { + const t = useTranslations(); const leverOptions = [ { key: "deal", @@ -27,27 +29,27 @@ export function DriversCoverageTriage() { return ( - Coverage Triage - Decision ladder for this forecast cycle + {t('analytics_drivers_coverage_triage.coverage_triage')} + {t('analytics_drivers_coverage_triage.decision_ladder_for_this_forecast_cycle')}
- At Risk + {t('analytics_drivers_coverage_triage.at_risk')} - 1.9x / 3.0x + {t('analytics_drivers_coverage_triage.1_9x_3_0x')} - Gap $222,930 + {t('analytics_drivers_coverage_triage.gap_222_930')} - 4 deals • ETA 10d + {t('analytics_drivers_coverage_triage.4_deals_eta_10d')}

- Coverage below target. Prioritize qualified volume and shorter cycle time. + {t('analytics_drivers_coverage_triage.coverage_below_target_prioritize_qualifi')}

@@ -73,7 +75,7 @@ export function DriversCoverageTriage() {
diff --git a/src/app/(main)/dashboard/(legacy)/analytics-v1/_components/analytics-drivers-forecast-target.tsx b/src/app/(main)/dashboard/(legacy)/analytics-v1/_components/analytics-drivers-forecast-target.tsx index ed716e7..e44c044 100644 --- a/src/app/(main)/dashboard/(legacy)/analytics-v1/_components/analytics-drivers-forecast-target.tsx +++ b/src/app/(main)/dashboard/(legacy)/analytics-v1/_components/analytics-drivers-forecast-target.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import { Bar, CartesianGrid, ComposedChart, Dot, LabelList, Line, ReferenceLine, XAxis, YAxis } from "recharts"; @@ -44,6 +45,7 @@ const CHART_DATA: TrendPoint[] = [ ]; export function DriversForecastTarget() { + const t = useTranslations(); const chartData = CHART_DATA; const pipelineMin = Math.min(...CHART_DATA.map((point) => point.weightedPipeline)); const pipelineMax = Math.max(...CHART_DATA.map((point) => point.weightedPipeline)); @@ -51,14 +53,14 @@ export function DriversForecastTarget() { return ( - Forecast vs Target - 12-week trend with attainment context + {t('analytics_drivers_forecast_target.forecast_vs_target')} + {t('analytics_drivers_forecast_target.12_week_trend_with_attainment_context')}
- - - + + +
diff --git a/src/app/(main)/dashboard/(legacy)/analytics-v1/_components/analytics-overview.tsx b/src/app/(main)/dashboard/(legacy)/analytics-v1/_components/analytics-overview.tsx index bac08e7..1353240 100644 --- a/src/app/(main)/dashboard/(legacy)/analytics-v1/_components/analytics-overview.tsx +++ b/src/app/(main)/dashboard/(legacy)/analytics-v1/_components/analytics-overview.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import * as React from "react"; @@ -144,6 +145,7 @@ function buildRevenueChartData(from: Date, to: Date) { } function SummaryRow({ revenueSeries }: { revenueSeries: Array<{ day: string; revenue: number }> }) { + const t = useTranslations(); const revenueChartConfig = { revenue: { label: "Revenue", @@ -161,7 +163,7 @@ function SummaryRow({ revenueSeries }: { revenueSeries: Array<{ day: string; rev
-
Revenue
+
{t('analytics_overview.revenue')}
$1,248,000
@@ -170,9 +172,9 @@ function SummaryRow({ revenueSeries }: { revenueSeries: Array<{ day: string; rev
- Previous $1,141,000 + {t('analytics_overview.previous_1_141_000')} - Risk Ladder 30 + {t('analytics_overview.risk_ladder_30')}
@@ -190,14 +192,14 @@ function SummaryRow({ revenueSeries }: { revenueSeries: Array<{ day: string; rev /> - Selected range + {t('analytics_overview.selected_range')}
- Risk summary - Core risk signals vs previous period + {t('analytics_overview.risk_summary')} + {t('analytics_overview.core_risk_signals_vs_previous_period')} {RISK_SUMMARY_METRICS.map((item) => ( @@ -268,6 +270,7 @@ function FiltersPopover({ selectedFilters: FilterToggleKey[]; onToggle: (key: FilterToggleKey, checked: boolean) => void; }) { + const t = useTranslations(); const [open, setOpen] = React.useState(false); const activeCount = selectedFilters.length; @@ -285,9 +288,9 @@ function FiltersPopover({
-

Filters

+

{t('analytics_overview.filters')}

- Risk Ladder 30 + {t('analytics_overview.risk_ladder_30')}
diff --git a/src/app/(main)/dashboard/(legacy)/crm-v1/_components/insight-cards.tsx b/src/app/(main)/dashboard/(legacy)/crm-v1/_components/insight-cards.tsx index 06da62c..854db34 100644 --- a/src/app/(main)/dashboard/(legacy)/crm-v1/_components/insight-cards.tsx +++ b/src/app/(main)/dashboard/(legacy)/crm-v1/_components/insight-cards.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import { Bar, BarChart, CartesianGrid, Label, LabelList, Pie, PieChart, XAxis, YAxis } from "recharts"; @@ -14,13 +15,14 @@ import { } from "./crm.config"; export function InsightCards() { + const t = useTranslations(); const totalLeads = leadsBySourceChartData.reduce((acc, curr) => acc + curr.leads, 0); return (
- Leads by Source + {t('insight_cards.leads_by_source')} @@ -89,17 +91,17 @@ export function InsightCards() { - Project Revenue vs. Target + {t('insight_cards.project_revenue_vs_target')} @@ -142,7 +144,7 @@ export function InsightCards() { -

Average progress: 78% · 2 projects above target

+

{t('insight_cards.average_progress_78_2_projects_above_tar')}

diff --git a/src/app/(main)/dashboard/(legacy)/crm-v1/_components/operational-cards.tsx b/src/app/(main)/dashboard/(legacy)/crm-v1/_components/operational-cards.tsx index 41216f0..7a411d9 100644 --- a/src/app/(main)/dashboard/(legacy)/crm-v1/_components/operational-cards.tsx +++ b/src/app/(main)/dashboard/(legacy)/crm-v1/_components/operational-cards.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import { Clock } from "lucide-react"; import { Funnel, FunnelChart, LabelList } from "recharts"; @@ -12,12 +13,13 @@ import { cn, formatCurrency } from "@/lib/utils"; import { actionItems, regionSalesData, salesPipelineChartConfig, salesPipelineChartData } from "./crm.config"; export function OperationalCards() { + const t = useTranslations(); const totalSales = regionSalesData.reduce((sum, region) => sum + region.sales, 0); return (
- Sales Pipeline + {t('operational_cards.sales_pipeline')} @@ -30,13 +32,13 @@ export function OperationalCards() { -

Leads increased by 18.2% since last month.

+

{t('operational_cards.leads_increased_by_18_2_since_last_month')}

- Sales by Region + {t('operational_cards.sales_by_region')} {formatCurrency(totalSales, { noDecimals: true })} @@ -80,7 +82,7 @@ export function OperationalCards() { - Action Items + {t('operational_cards.action_items')}
    diff --git a/src/app/(main)/dashboard/(legacy)/crm-v1/_components/overview-cards.tsx b/src/app/(main)/dashboard/(legacy)/crm-v1/_components/overview-cards.tsx index d6feb83..f5dbaa9 100644 --- a/src/app/(main)/dashboard/(legacy)/crm-v1/_components/overview-cards.tsx +++ b/src/app/(main)/dashboard/(legacy)/crm-v1/_components/overview-cards.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import { format, subMonths } from "date-fns"; import { BadgeDollarSign, Wallet } from "lucide-react"; @@ -19,12 +20,13 @@ import { const lastMonth = format(subMonths(new Date(), 1), "LLLL"); export function OverviewCards() { + const t = useTranslations(); return (
    - New Leads - Last Month + {t('overview_cards.new_leads')} + {t('overview_cards.last_month')} @@ -50,8 +52,8 @@ export function OverviewCards() { - Proposals Sent - Last Month + {t('overview_cards.proposals_sent')} + {t('overview_cards.last_month')} @@ -88,8 +90,8 @@ export function OverviewCards() {
    - Revenue - Last 6 Months + {t('overview_cards.revenue')} + {t('overview_cards.last_6_months')}

    $56,050

    +22.2%
    @@ -104,8 +106,8 @@ export function OverviewCards() {
    - Projects Won - Last 6 Months + {t('overview_cards.projects_won')} + {t('overview_cards.last_6_months')}

    136

    -2.5%
    @@ -114,8 +116,8 @@ export function OverviewCards() { - Revenue Growth - Year to Date (YTD) + {t('overview_cards.revenue_growth')} + {t('overview_cards.year_to_date_ytd')} @@ -143,7 +145,7 @@ export function OverviewCards() { -

    +35% growth since last year

    +

    {t('overview_cards.35_growth_since_last_year')}

    diff --git a/src/app/(main)/dashboard/(legacy)/crm-v1/_components/recent-leads-table/table.tsx b/src/app/(main)/dashboard/(legacy)/crm-v1/_components/recent-leads-table/table.tsx index 25c6165..5bca49f 100644 --- a/src/app/(main)/dashboard/(legacy)/crm-v1/_components/recent-leads-table/table.tsx +++ b/src/app/(main)/dashboard/(legacy)/crm-v1/_components/recent-leads-table/table.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; "use no memo"; import * as React from "react"; @@ -51,6 +52,7 @@ const COLUMN_LABELS: Record = { }; export function RecentLeadsTable({ data }: { data: RecentLeadRow[] }) { + const t = useTranslations(); const [rowSelection, setRowSelection] = React.useState({}); const [columnVisibility, setColumnVisibility] = React.useState({}); const [columnFilters, setColumnFilters] = React.useState([]); @@ -82,8 +84,8 @@ export function RecentLeadsTable({ data }: { data: RecentLeadRow[] }) { return ( - Recent Leads - Track and manage your latest leads and their status. + {t('table.recent_leads')} + {t('table.track_and_manage_your_latest_leads_and_t')}
    @@ -95,7 +97,7 @@ export function RecentLeadsTable({ data }: { data: RecentLeadRow[] }) { - Toggle columns + {t('table.toggle_columns')} {table @@ -115,7 +117,7 @@ export function RecentLeadsTable({ data }: { data: RecentLeadRow[] }) {
    @@ -161,7 +163,7 @@ export function RecentLeadsTable({ data }: { data: RecentLeadRow[] }) {
    - + - Last 3 months + {t('chart_area_interactive.last_3_months')} - Last 30 days + {t('chart_area_interactive.last_30_days')} - Last 7 days + {t('chart_area_interactive.last_7_days')} diff --git a/src/app/(main)/dashboard/(legacy)/default-v1/_components/proposal-sections-table/table.tsx b/src/app/(main)/dashboard/(legacy)/default-v1/_components/proposal-sections-table/table.tsx index 98ece53..ee750a4 100644 --- a/src/app/(main)/dashboard/(legacy)/default-v1/_components/proposal-sections-table/table.tsx +++ b/src/app/(main)/dashboard/(legacy)/default-v1/_components/proposal-sections-table/table.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; "use no memo"; import * as React from "react"; @@ -66,6 +67,7 @@ const VIEW_OPTIONS = [ type ViewOption = (typeof VIEW_OPTIONS)[number]["value"]; export function ProposalSectionsTable({ data: initialData }: { data: ProposalSectionsRow[] }) { + const t = useTranslations(); const [data, setData] = React.useState(() => initialData); const [activeView, setActiveView] = React.useState("outline"); const [rowSelection, setRowSelection] = React.useState({}); @@ -126,11 +128,11 @@ export function ProposalSectionsTable({ data: initialData }: { data: ProposalSec >
    - Outline + {t('table.outline')} Past Performance 3 Key Personnel 2 - Focus Documents + {t('table.focus_documents')}
    @@ -162,7 +164,7 @@ export function ProposalSectionsTable({ data: initialData }: { data: ProposalSec - Toggle columns + {t('table.toggle_columns')} {table .getAllColumns() @@ -181,7 +183,7 @@ export function ProposalSectionsTable({ data: initialData }: { data: ProposalSec
    @@ -232,7 +234,7 @@ export function ProposalSectionsTable({ data: initialData }: { data: ProposalSec
    - + - This Month - Last 6 Months - Year to Date - This Year + {t('cash_flow_overview.this_month')} + {t('cash_flow_overview.last_6_months')} + {t('cash_flow_overview.year_to_date')} + {t('cash_flow_overview.this_year')} @@ -67,7 +69,7 @@ export function CashFlowOverview() {
    -

    Income

    +

    {t('cash_flow_overview.income')}

    {formatCurrency(totalIncome, { noDecimals: true })}

    @@ -77,7 +79,7 @@ export function CashFlowOverview() {
    -

    Expenses

    +

    {t('cash_flow_overview.expenses')}

    {formatCurrency(totalExpenses, { noDecimals: true })}

    diff --git a/src/app/(main)/dashboard/(legacy)/finance-v1/_components/income-reliability.tsx b/src/app/(main)/dashboard/(legacy)/finance-v1/_components/income-reliability.tsx index b4a0acc..a908c5f 100644 --- a/src/app/(main)/dashboard/(legacy)/finance-v1/_components/income-reliability.tsx +++ b/src/app/(main)/dashboard/(legacy)/finance-v1/_components/income-reliability.tsx @@ -1,35 +1,37 @@ "use client"; +import { useTranslations } from 'next-intl'; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Separator } from "@/components/ui/separator"; import { formatCurrency } from "@/lib/utils"; export function IncomeReliability() { + const t = useTranslations(); return ( - Income Reliability - How consistent your income has been recently. + {t('income_reliability.income_reliability')} + {t('income_reliability.how_consistent_your_income_has_been_rece')}
    -

    High Reliability

    -

    Based on last 6 months of income

    +

    {t('income_reliability.high_reliability')}

    +

    {t('income_reliability.based_on_last_6_months_of_income')}

    -

    Fixed Income

    -

    Recurring · Predictable

    +

    {t('income_reliability.fixed_income')}

    +

    {t('income_reliability.recurring_predictable')}

    {formatCurrency(90000, { noDecimals: true })}

    -

    Variable Income

    -

    Fluctuating sources

    +

    {t('income_reliability.variable_income')}

    +

    {t('income_reliability.fluctuating_sources')}

    {formatCurrency(46500, { noDecimals: true })}

    diff --git a/src/app/(main)/dashboard/(legacy)/finance-v1/_components/kpis/monthly-cash-flow.tsx b/src/app/(main)/dashboard/(legacy)/finance-v1/_components/kpis/monthly-cash-flow.tsx index 83bdd57..62b22d1 100644 --- a/src/app/(main)/dashboard/(legacy)/finance-v1/_components/kpis/monthly-cash-flow.tsx +++ b/src/app/(main)/dashboard/(legacy)/finance-v1/_components/kpis/monthly-cash-flow.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import { Calendar, TrendingUp } from "lucide-react"; @@ -7,6 +8,7 @@ import { Separator } from "@/components/ui/separator"; import { formatCurrency } from "@/lib/utils"; export function MonthlyCashFlow() { + const t = useTranslations(); return ( @@ -22,7 +24,7 @@ export function MonthlyCashFlow() {

    +{formatCurrency(2780, { noDecimals: true })}

    -

    This month · Net

    +

    {t('monthly_cash_flow.this_month_net')}

    diff --git a/src/app/(main)/dashboard/(legacy)/finance-v1/_components/kpis/net-worth.tsx b/src/app/(main)/dashboard/(legacy)/finance-v1/_components/kpis/net-worth.tsx index d890909..d1d30ae 100644 --- a/src/app/(main)/dashboard/(legacy)/finance-v1/_components/kpis/net-worth.tsx +++ b/src/app/(main)/dashboard/(legacy)/finance-v1/_components/kpis/net-worth.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import { SaudiRiyal } from "lucide-react"; @@ -7,6 +8,7 @@ import { Separator } from "@/components/ui/separator"; import { formatCurrency } from "@/lib/utils"; export function NetWorth() { + const t = useTranslations(); return ( @@ -23,14 +25,14 @@ export function NetWorth() {

    {formatCurrency(84250, { noDecimals: true })}

    - +$3,680 MoM + {t('net_worth.3_680_mom')}
    -

    This month

    +

    {t('net_worth.this_month')}

    -

    Across all linked accounts

    +

    {t('net_worth.across_all_linked_accounts')}

    ); diff --git a/src/app/(main)/dashboard/(legacy)/finance-v1/_components/kpis/primary-account.tsx b/src/app/(main)/dashboard/(legacy)/finance-v1/_components/kpis/primary-account.tsx index 2c48bbd..eca9e97 100644 --- a/src/app/(main)/dashboard/(legacy)/finance-v1/_components/kpis/primary-account.tsx +++ b/src/app/(main)/dashboard/(legacy)/finance-v1/_components/kpis/primary-account.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import { WalletMinimal } from "lucide-react"; @@ -7,6 +8,7 @@ import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { formatCurrency } from "@/lib/utils"; export function PrimaryAccount() { + const t = useTranslations(); return ( @@ -23,15 +25,15 @@ export function PrimaryAccount() {

    {formatCurrency(12450, { noDecimals: true })}

    -

    Available balance

    +

    {t('primary_account.available_balance')}

    diff --git a/src/app/(main)/dashboard/(legacy)/finance-v1/_components/kpis/savings-rate.tsx b/src/app/(main)/dashboard/(legacy)/finance-v1/_components/kpis/savings-rate.tsx index af53379..7e55f2d 100644 --- a/src/app/(main)/dashboard/(legacy)/finance-v1/_components/kpis/savings-rate.tsx +++ b/src/app/(main)/dashboard/(legacy)/finance-v1/_components/kpis/savings-rate.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import { HandCoins } from "lucide-react"; @@ -6,6 +7,7 @@ import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Separator } from "@/components/ui/separator"; export function SavingsRate() { + const t = useTranslations(); return ( @@ -22,14 +24,14 @@ export function SavingsRate() {

    32%

    - +3.5% MoM + {t('savings_rate.3_5_mom')}
    -

    This month · After expenses

    +

    {t('savings_rate.this_month_after_expenses')}

    -

    Above your average

    +

    {t('savings_rate.above_your_average')}

    ); diff --git a/src/app/(main)/dashboard/(legacy)/finance-v1/_components/spending-breakdown.tsx b/src/app/(main)/dashboard/(legacy)/finance-v1/_components/spending-breakdown.tsx index 75ba067..2bea5c2 100644 --- a/src/app/(main)/dashboard/(legacy)/finance-v1/_components/spending-breakdown.tsx +++ b/src/app/(main)/dashboard/(legacy)/finance-v1/_components/spending-breakdown.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { formatCurrency } from "@/lib/utils"; @@ -42,12 +43,13 @@ const expenses = [ ]; export function SpendingBreakdown() { + const t = useTranslations(); const total = expenses.reduce((sum, item) => sum + item.amount, 0); return ( - Spending Breakdown - Expense distribution by category. + {t('spending_breakdown.spending_breakdown')} + {t('spending_breakdown.expense_distribution_by_category')}
    diff --git a/src/app/(main)/dashboard/(legacy)/finance-v1/page.tsx b/src/app/(main)/dashboard/(legacy)/finance-v1/page.tsx index 4b375e8..467872c 100644 --- a/src/app/(main)/dashboard/(legacy)/finance-v1/page.tsx +++ b/src/app/(main)/dashboard/(legacy)/finance-v1/page.tsx @@ -1,3 +1,4 @@ +import { useTranslations } from 'next-intl'; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { CardOverview } from "./_components/card-overview"; @@ -10,19 +11,20 @@ import { SavingsRate } from "./_components/kpis/savings-rate"; import { SpendingBreakdown } from "./_components/spending-breakdown"; export default function Page() { + const t = useTranslations(); return (
    - Overview + {t('page.overview')} - Activity + {t('page.activity')} - Insights + {t('page.insights')} - Utilities + {t('page.utilities')} diff --git a/src/app/(main)/dashboard/[...not-found]/page.tsx b/src/app/(main)/dashboard/[...not-found]/page.tsx index e4e9dc0..21a94db 100644 --- a/src/app/(main)/dashboard/[...not-found]/page.tsx +++ b/src/app/(main)/dashboard/[...not-found]/page.tsx @@ -1,10 +1,12 @@ "use client"; +import { useTranslations } from 'next-intl'; export default function DashboardNotFound() { + const t = useTranslations(); return (
    -

    Page not found.

    -

    This section will be added in future updates.

    +

    {t('page.page_not_found')}

    +

    {t('page.this_section_will_be_added_in_future_upd')}

    ); } diff --git a/src/app/(main)/dashboard/_components/sidebar/layout-controls.tsx b/src/app/(main)/dashboard/_components/sidebar/layout-controls.tsx index 28091b4..fb8b1e4 100644 --- a/src/app/(main)/dashboard/_components/sidebar/layout-controls.tsx +++ b/src/app/(main)/dashboard/_components/sidebar/layout-controls.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import { Settings } from "lucide-react"; @@ -23,6 +24,7 @@ import { applyThemePreset } from "@/lib/preferences/theme-utils"; import { usePreferencesStore } from "@/stores/preferences/preferences-provider"; export function LayoutControls() { + const t = useTranslations(); const themeMode = usePreferencesStore((s) => s.themeMode); const resolvedThemeMode = usePreferencesStore((s) => s.resolvedThemeMode); const setThemeMode = usePreferencesStore((s) => s.setThemeMode); @@ -106,15 +108,15 @@ export function LayoutControls() {
    -

    Preferences

    -

    Customize your dashboard layout preferences.

    +

    {t('layout_controls.preferences')}

    +

    {t('layout_controls.customize_your_dashboard_layout_preferen')}

    - + - + @@ -154,7 +156,7 @@ export function LayoutControls() {
    - + - - Light + + {t('layout_controls.light')} - - Dark + + {t('layout_controls.dark')} - - System + + {t('layout_controls.system')}
    - + - - Centered + + {t('layout_controls.centered')} - - Full Width + + {t('layout_controls.full_width')}
    - + - - Sticky + + {t('layout_controls.sticky')} - - Scroll + + {t('layout_controls.scroll')}
    - + - - Inset + + {t('layout_controls.inset')} - - Sidebar + + {t('layout_controls.sidebar')} - - Floating + + {t('layout_controls.floating')}
    - + - - Icon + + {t('layout_controls.icon')} - - OffCanvas + + {t('layout_controls.offcanvas')}
    diff --git a/src/app/(main)/dashboard/_components/sidebar/nav-documents.tsx b/src/app/(main)/dashboard/_components/sidebar/nav-documents.tsx index 730aa4f..ac0a3c5 100644 --- a/src/app/(main)/dashboard/_components/sidebar/nav-documents.tsx +++ b/src/app/(main)/dashboard/_components/sidebar/nav-documents.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import { Ellipsis, Folder, Forward, type LucideIcon, Trash2 } from "lucide-react"; @@ -28,11 +29,12 @@ export function NavDocuments({ readonly icon: LucideIcon; }[]; }) { + const t = useTranslations(); const { isMobile } = useSidebar(); return ( - Documents + {t('nav_documents.documents')} {items.map((item) => ( @@ -74,7 +76,7 @@ export function NavDocuments({ - More + {t('nav_documents.more')} diff --git a/src/app/(main)/dashboard/_components/sidebar/nav-main.tsx b/src/app/(main)/dashboard/_components/sidebar/nav-main.tsx index 3d2551a..17428f5 100644 --- a/src/app/(main)/dashboard/_components/sidebar/nav-main.tsx +++ b/src/app/(main)/dashboard/_components/sidebar/nav-main.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import Link from "next/link"; import { usePathname } from "next/navigation"; @@ -83,6 +84,7 @@ function hasSubItems(item: NavMainItem): item is NavMainParentItem { } export function NavMain({ items }: NavMainProps) { + const t = useTranslations(); const path = usePathname(); const isItemActive = (item: NavMainItem) => { @@ -108,11 +110,11 @@ export function NavMain({ items }: NavMainProps) { - Quick Create + {t('nav_main.quick_create')} diff --git a/src/app/(main)/dashboard/_components/sidebar/search-dialog.tsx b/src/app/(main)/dashboard/_components/sidebar/search-dialog.tsx index d07251d..6d4ad58 100644 --- a/src/app/(main)/dashboard/_components/sidebar/search-dialog.tsx +++ b/src/app/(main)/dashboard/_components/sidebar/search-dialog.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import * as React from "react"; @@ -78,6 +79,7 @@ function groupBy(items: SearchItem[]) { } export function SearchDialog() { + const t = useTranslations(); const [open, setOpen] = React.useState(false); const [query, setQuery] = React.useState(""); const router = useRouter(); @@ -145,9 +147,9 @@ export function SearchDialog() { - + - No results found. + {t('search_dialog.no_results_found')} {query ? renderGroups(searchItems) : renderGroups(recommendations)} diff --git a/src/app/(main)/dashboard/_components/sidebar/sidebar-support-card.tsx b/src/app/(main)/dashboard/_components/sidebar/sidebar-support-card.tsx index 5d41598..af997af 100644 --- a/src/app/(main)/dashboard/_components/sidebar/sidebar-support-card.tsx +++ b/src/app/(main)/dashboard/_components/sidebar/sidebar-support-card.tsx @@ -1,3 +1,4 @@ +import { useTranslations } from 'next-intl'; import Link from "next/link"; import { siX } from "simple-icons"; @@ -6,17 +7,18 @@ import { SimpleIcon } from "@/components/simple-icon"; import { Card, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; export function SidebarSupportCard() { + const t = useTranslations(); return ( - Looking for something more? + {t('sidebar_support_card.looking_for_something_more')} Open an issue or do reach out to me on  diff --git a/src/app/(main)/dashboard/academy/_components/assignment-status.tsx b/src/app/(main)/dashboard/academy/_components/assignment-status.tsx index 118244f..17c62ff 100644 --- a/src/app/(main)/dashboard/academy/_components/assignment-status.tsx +++ b/src/app/(main)/dashboard/academy/_components/assignment-status.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import { ArrowRight } from "lucide-react"; import { Bar, BarChart, CartesianGrid, XAxis } from "recharts"; @@ -62,10 +63,11 @@ function AssignmentDotPattern({ color, id }: { color: string; id: string }) { } export function AssignmentStatus() { + const t = useTranslations(); return ( - Assignment Status + {t('assignment_status.assignment_status')} View Report diff --git a/src/app/(main)/dashboard/academy/_components/class-schedule.tsx b/src/app/(main)/dashboard/academy/_components/class-schedule.tsx index d74716d..9aaf5a2 100644 --- a/src/app/(main)/dashboard/academy/_components/class-schedule.tsx +++ b/src/app/(main)/dashboard/academy/_components/class-schedule.tsx @@ -1,3 +1,4 @@ +import { useTranslations } from 'next-intl'; import { format } from "date-fns"; import { ArrowRight } from "lucide-react"; @@ -5,12 +6,13 @@ import { Badge } from "@/components/ui/badge"; import { Card, CardAction, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; export function ClassSchedule() { + const t = useTranslations(); const today = format(new Date(), "EEEE, d MMMM"); return ( - Class Schedule + {t('class_schedule.class_schedule')} View Full Schedule @@ -27,15 +29,15 @@ export function ClassSchedule() {
    -
    Pure Mathematics
    -
    Grade 11A • Room 2.14
    +
    {t('class_schedule.pure_mathematics')}
    +
    {t('class_schedule.grade_11a_room_2_14')}
    - In Progress + {t('class_schedule.in_progress')}
    @@ -49,15 +51,15 @@ export function ClassSchedule() {
-
English Literature
-
Grade 11B • Seminar Room 3
+
{t('class_schedule.english_literature')}
+
{t('class_schedule.grade_11b_seminar_room_3')}
- Upcoming + {t('class_schedule.upcoming')}
@@ -71,15 +73,15 @@ export function ClassSchedule() {
-
Physics
-
Grade 11C • Physics Lab
+
{t('class_schedule.physics')}
+
{t('class_schedule.grade_11c_physics_lab')}
- Upcoming + {t('class_schedule.upcoming')}
@@ -93,15 +95,15 @@ export function ClassSchedule() {
-
Modern European History
-
Grade 11A • Room 1.08
+
{t('class_schedule.modern_european_history')}
+
{t('class_schedule.grade_11a_room_1_08')}
- Cancelled + {t('class_schedule.cancelled')}
@@ -115,15 +117,15 @@ export function ClassSchedule() {
-
Computer Science
-
Grade 11B • Computing Lab
+
{t('class_schedule.computer_science')}
+
{t('class_schedule.grade_11b_computing_lab')}
- Upcoming + {t('class_schedule.upcoming')}
diff --git a/src/app/(main)/dashboard/academy/_components/kpi-cards.tsx b/src/app/(main)/dashboard/academy/_components/kpi-cards.tsx index a53cd88..6ec482d 100644 --- a/src/app/(main)/dashboard/academy/_components/kpi-cards.tsx +++ b/src/app/(main)/dashboard/academy/_components/kpi-cards.tsx @@ -1,15 +1,17 @@ +import { useTranslations } from 'next-intl'; import { ArrowUp, Info } from "lucide-react"; import { Badge } from "@/components/ui/badge"; import { Card, CardAction, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; export function KpiCards() { + const t = useTranslations(); return (
- Students Taught + {t('kpi_cards.students_taught')} @@ -22,13 +24,13 @@ export function KpiCards() { 2.8%
-
across 5 Grade 11 sections
+
{t('kpi_cards.across_5_grade_11_sections')}
- Avg. Attendance + {t('kpi_cards.avg_attendance')} @@ -41,13 +43,13 @@ export function KpiCards() { 1.1%
-
vs last month
+
{t('kpi_cards.vs_last_month')}
- Assignments + {t('kpi_cards.assignments')} @@ -55,13 +57,13 @@ export function KpiCards() {
81
-
63 pending · 18 overdue
+
{t('kpi_cards.63_pending_18_overdue')}
- Classes Today + {t('kpi_cards.classes_today')} @@ -69,7 +71,7 @@ export function KpiCards() {
5
-
1 in progress · 3 upcoming · 1 cancelled
+
{t('kpi_cards.1_in_progress_3_upcoming_1_cancelled')}
diff --git a/src/app/(main)/dashboard/academy/_components/performance-highlights.tsx b/src/app/(main)/dashboard/academy/_components/performance-highlights.tsx index d785d30..f0af88a 100644 --- a/src/app/(main)/dashboard/academy/_components/performance-highlights.tsx +++ b/src/app/(main)/dashboard/academy/_components/performance-highlights.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import { ArrowRight } from "lucide-react"; import { Bar, BarChart, CartesianGrid, XAxis, YAxis } from "recharts"; @@ -126,10 +127,11 @@ function PerformanceHighlightBar({ } export function PerformanceHighlights() { + const t = useTranslations(); return ( - Performance Highlights + {t('performance_highlights.performance_highlights')} View Insights diff --git a/src/app/(main)/dashboard/academy/_components/upcoming-events.tsx b/src/app/(main)/dashboard/academy/_components/upcoming-events.tsx index 6557652..236add2 100644 --- a/src/app/(main)/dashboard/academy/_components/upcoming-events.tsx +++ b/src/app/(main)/dashboard/academy/_components/upcoming-events.tsx @@ -1,3 +1,4 @@ +import { useTranslations } from 'next-intl'; import { addDays, format } from "date-fns"; import { ArrowRight } from "lucide-react"; @@ -38,12 +39,13 @@ const upcomingEvents = [ ]; export function UpcomingEvents() { + const t = useTranslations(); const today = new Date(); return ( - Upcoming Events + {t('upcoming_events.upcoming_events')} View Calendar diff --git a/src/app/(main)/dashboard/academy/page.tsx b/src/app/(main)/dashboard/academy/page.tsx index cb9a723..159f185 100644 --- a/src/app/(main)/dashboard/academy/page.tsx +++ b/src/app/(main)/dashboard/academy/page.tsx @@ -1,3 +1,4 @@ +import { useTranslations } from 'next-intl'; import { BookOpenCheck, Megaphone, Plus } from "lucide-react"; import { Button } from "@/components/ui/button"; @@ -9,13 +10,14 @@ import { PerformanceHighlights } from "./_components/performance-highlights"; import { UpcomingEvents } from "./_components/upcoming-events"; export default function Page() { + const t = useTranslations(); return (
-

Academy Dashboard

+

{t('page.academy_dashboard')}

- Good morning, Teacher. Here's a quick overview of today's activity. + {t('page.good_morning_teacher_heres_a_quick_overv')}

diff --git a/src/app/(main)/dashboard/analytics/_components/analytics-kpi-strip.tsx b/src/app/(main)/dashboard/analytics/_components/analytics-kpi-strip.tsx index 13378fb..117de65 100644 --- a/src/app/(main)/dashboard/analytics/_components/analytics-kpi-strip.tsx +++ b/src/app/(main)/dashboard/analytics/_components/analytics-kpi-strip.tsx @@ -1,15 +1,17 @@ +import { useTranslations } from 'next-intl'; import { ArrowDownRight, ArrowUpRight, Ellipsis } from "lucide-react"; import { Badge } from "@/components/ui/badge"; import { Card, CardAction, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; export function AnalyticsKpiStrip() { + const t = useTranslations(); return (
- Unique Visitors + {t('analytics_kpi_strip.unique_visitors')} @@ -28,14 +30,14 @@ export function AnalyticsKpiStrip() { from 207.3k - last 4 weeks + {t('analytics_kpi_strip.last_4_weeks')}
- Sessions + {t('analytics_kpi_strip.sessions')} @@ -54,14 +56,14 @@ export function AnalyticsKpiStrip() { from 243.5k - last 4 weeks + {t('analytics_kpi_strip.last_4_weeks')}
- Pageviews + {t('analytics_kpi_strip.pageviews')} @@ -80,14 +82,14 @@ export function AnalyticsKpiStrip() { from 566.8k - last 4 weeks + {t('analytics_kpi_strip.last_4_weeks')}
- Engagement Rate + {t('analytics_kpi_strip.engagement_rate')} @@ -106,14 +108,14 @@ export function AnalyticsKpiStrip() { from 58.9% - last 4 weeks + {t('analytics_kpi_strip.last_4_weeks')}
- Conversion Rate + {t('analytics_kpi_strip.conversion_rate')} @@ -132,7 +134,7 @@ export function AnalyticsKpiStrip() { from 8.9% - last 4 weeks + {t('analytics_kpi_strip.last_4_weeks')}
diff --git a/src/app/(main)/dashboard/analytics/_components/analytics-toolbar.tsx b/src/app/(main)/dashboard/analytics/_components/analytics-toolbar.tsx index cbc708a..24ede80 100644 --- a/src/app/(main)/dashboard/analytics/_components/analytics-toolbar.tsx +++ b/src/app/(main)/dashboard/analytics/_components/analytics-toolbar.tsx @@ -1,3 +1,4 @@ +import { useTranslations } from 'next-intl'; import { Ellipsis, FileDown, FileUp, RefreshCw, Share2 } from "lucide-react"; import { Button } from "@/components/ui/button"; @@ -13,31 +14,32 @@ import { import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; export function AnalyticsToolbar() { + const t = useTranslations(); return (
- - Analytics actions + {t('analytics_toolbar.analytics_actions')} Export report diff --git a/src/app/(main)/dashboard/analytics/_components/realtime-visitors.tsx b/src/app/(main)/dashboard/analytics/_components/realtime-visitors.tsx index c7a9507..124f152 100644 --- a/src/app/(main)/dashboard/analytics/_components/realtime-visitors.tsx +++ b/src/app/(main)/dashboard/analytics/_components/realtime-visitors.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import { Ellipsis } from "lucide-react"; import { Bar, BarChart, type BarShapeProps, XAxis, YAxis } from "recharts"; @@ -89,10 +90,11 @@ function RealtimeBarShape(props: BarShapeProps) { } export function RealtimeVisitors() { + const t = useTranslations(); return ( - Realtime Visitors + {t('realtime_visitors.realtime_visitors')} @@ -102,14 +104,14 @@ export function RealtimeVisitors() {
24 - per minute + {t('realtime_visitors.per_minute')}
- Live + {t('realtime_visitors.live')}
@@ -123,22 +125,22 @@ export function RealtimeVisitors() {
diff --git a/src/app/(main)/dashboard/analytics/_components/top-pages.tsx b/src/app/(main)/dashboard/analytics/_components/top-pages.tsx index 9ba962b..2280178 100644 --- a/src/app/(main)/dashboard/analytics/_components/top-pages.tsx +++ b/src/app/(main)/dashboard/analytics/_components/top-pages.tsx @@ -1,3 +1,4 @@ +import { useTranslations } from 'next-intl'; import { Ellipsis } from "lucide-react"; import { Card, CardAction, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; @@ -12,10 +13,11 @@ const pages = [ ]; export function TopPages() { + const t = useTranslations(); return ( - Page Performance + {t('top_pages.page_performance')} @@ -26,9 +28,9 @@ export function TopPages() { - Views - Avg Time - Bounce + {t('top_pages.views')} + {t('top_pages.avg_time')} + {t('top_pages.bounce')} diff --git a/src/app/(main)/dashboard/analytics/_components/top-traffic-sources.tsx b/src/app/(main)/dashboard/analytics/_components/top-traffic-sources.tsx index 97784d2..d5d8d8d 100644 --- a/src/app/(main)/dashboard/analytics/_components/top-traffic-sources.tsx +++ b/src/app/(main)/dashboard/analytics/_components/top-traffic-sources.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import { Ellipsis } from "lucide-react"; import { Bar, BarChart, CartesianGrid, LabelList, type LabelProps, XAxis, YAxis } from "recharts"; @@ -88,10 +89,11 @@ function TrafficSourceBarChart({ data }: { data: TrafficSourceDatum[] }) { } export function TopTrafficSources() { + const t = useTranslations(); return ( - Traffic Sources + {t('top_traffic_sources.traffic_sources')} @@ -101,13 +103,13 @@ export function TopTrafficSources() { - Sources + {t('top_traffic_sources.sources')} - Campaigns + {t('top_traffic_sources.campaigns')} - Referrers + {t('top_traffic_sources.referrers')} diff --git a/src/app/(main)/dashboard/analytics/_components/traffic-quality.tsx b/src/app/(main)/dashboard/analytics/_components/traffic-quality.tsx index 09d229b..27ff1b0 100644 --- a/src/app/(main)/dashboard/analytics/_components/traffic-quality.tsx +++ b/src/app/(main)/dashboard/analytics/_components/traffic-quality.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import { Ellipsis } from "lucide-react"; import { CartesianGrid, ComposedChart, Line, XAxis, YAxis } from "recharts"; @@ -118,10 +119,11 @@ function formatWeek(value: number) { } export function TrafficQuality() { + const t = useTranslations(); return ( - Traffic Quality + {t('traffic_quality.traffic_quality')} diff --git a/src/app/(main)/dashboard/analytics/page.tsx b/src/app/(main)/dashboard/analytics/page.tsx index 4c7fda4..c159cdd 100644 --- a/src/app/(main)/dashboard/analytics/page.tsx +++ b/src/app/(main)/dashboard/analytics/page.tsx @@ -1,3 +1,4 @@ +import { useTranslations } from 'next-intl'; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { AnalyticsKpiStrip } from "./_components/analytics-kpi-strip"; @@ -11,23 +12,24 @@ import { TrafficQuality } from "./_components/traffic-quality"; import "@/styles/flag-icons/flags.css"; export default function Page() { + const t = useTranslations(); return (
-

Hello, Aiy

+

{t('page.hello_aiy')}

- Monitor traffic, engagement, and conversion performance in one view. + {t('page.monitor_traffic_engagement_and_conversio')}

- Overview - Audience - Acquisition - Engagement - Conversions + {t('page.overview')} + {t('page.audience')} + {t('page.acquisition')} + {t('page.engagement')} + {t('page.conversions')} @@ -57,25 +59,25 @@ export default function Page() {
- Audience view coming soon. + {t('page.audience_view_coming_soon')}
- Acquisition view coming soon. + {t('page.acquisition_view_coming_soon')}
- Engagement view coming soon. + {t('page.engagement_view_coming_soon')}
- Conversions view coming soon. + {t('page.conversions_view_coming_soon')}
diff --git a/src/app/(main)/dashboard/calendar/_components/calendar.tsx b/src/app/(main)/dashboard/calendar/_components/calendar.tsx index 737268c..0b95dea 100644 --- a/src/app/(main)/dashboard/calendar/_components/calendar.tsx +++ b/src/app/(main)/dashboard/calendar/_components/calendar.tsx @@ -1,4 +1,5 @@ "use client"; +import { useTranslations } from 'next-intl'; import * as React from "react"; @@ -35,6 +36,7 @@ const calendars = [ const plugins = [dayGridPlugin, timeGridPlugin, listPlugin, interactionPlugin, multiMonthPlugin]; export function Calendar() { + const t = useTranslations(); const controller = useCalendarController(); const [eventCount, setEventCount] = React.useState(0); const [selectedCalendar, setSelectedCalendar] = React.useState(calendars[0].key); @@ -80,7 +82,7 @@ export function Calendar() {
-