Initial commit from monorepo

This commit is contained in:
Ruslan Bakiev
2026-01-07 09:10:35 +07:00
commit 3db50d9637
371 changed files with 43223 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
{
"about": {
"title": "Raw Materials & Services Marketplace",
"description": "Digital platform connecting producers, buyers, logistics companies, financial organizations and quality control services in a unified ecosystem."
}
}

View File

@@ -0,0 +1,29 @@
{
"aiAssistants": {
"header": {
"title": "AI agent"
},
"view": {
"fallbackName": "AI assistant",
"not_found": "Assistant not found",
"agentTitle": "Optovia AI agent",
"agentSubtitle": "Routes, offers, orders and delivery status. Powered by LangGraph + MCP.",
"you": "You",
"agentName": "Optovia",
"typing": "Agent is thinking...",
"placeholder": "Ask about offers, routes or an order status",
"send": "Send",
"reset": "Reset",
"welcome": "Hi! I can find offers with routes to your destination, get order status, and list logistics nodes.",
"error": "Failed to get a reply from the agent.",
"emptyResponse": "No response from agent."
},
"assistants": {
"optovia": {
"name": "Logistics agent",
"role": "Optovia AI assistant",
"description": "Agent for routes, offers and order statuses."
}
}
}
}

17
i18n/locales/en/auth.json Normal file
View File

@@ -0,0 +1,17 @@
{
"auth": {
"login": "Login",
"register": "Sign Up",
"logout": "Sign Out",
"welcome_back": "Welcome Back",
"login_description": "Sign in to your Optovia account",
"email": "Email",
"email_placeholder": "Your email",
"password": "Password",
"password_placeholder": "Enter password",
"login_button": "Sign In",
"logging_in": "Signing in...",
"no_account": "Don't have an account?",
"register_link": "Sign up"
}
}

View File

@@ -0,0 +1,28 @@
{
"billing": {
"header": {
"title": "Balance"
},
"states": {
"loading": "Loading balance..."
},
"errors": {
"title": "Loading error",
"load_failed": "Failed to load balance",
"retry": "Retry"
},
"balance": {
"label": "Current balance",
"credits": "Credits",
"debits": "Debits"
},
"transactions": {
"title": "Transaction history",
"empty": "No transactions yet",
"date": "Date",
"reason": "Reason",
"amount": "Amount",
"status": "Status"
}
}
}

View File

@@ -0,0 +1,19 @@
{
"breadcrumbs": {
"cabinet": "Cabinet",
"orders": "Orders",
"addresses": "Addresses",
"profile": "Profile",
"team": "Company",
"kyc": "Verification",
"offers": "Offers",
"new": "New",
"russia": "Russia",
"ai": "AI Assistant",
"goods": "Goods",
"locations": "Locations",
"request": "Request",
"companySwitch": "Company switch",
"tokens": "Tokens"
}
}

View File

@@ -0,0 +1,11 @@
{
"cabinetNav": {
"orders": "My orders",
"addresses": "My addresses",
"billing": "Balance",
"profile": "Profile",
"team": "Company",
"offers": "My offers",
"ai": "AI assistant"
}
}

View File

@@ -0,0 +1,7 @@
{
"catalogAddress": {
"badges": {
"default": "Default"
}
}
}

View File

@@ -0,0 +1,47 @@
{
"catalogHub": {
"states": {
"loading": "Loading hub info..."
},
"not_found": {
"title": "Logistics hub not found",
"subtitle": "The page may have been removed or the address is incorrect"
},
"actions": {
"back_to_catalog": "Back to catalog"
},
"sections": {
"offers": {
"title": "Offers in this hub"
},
"suppliers": {
"title": "Suppliers working through this hub"
},
"products": {
"title": "Available products"
}
},
"empty": {
"offers": {
"title": "No offers yet",
"subtitle": "There are no active offers in this logistics hub yet. You can publish yours!"
}
},
"labels": {
"default_supplier": "Supplier"
},
"badges": {
"offers": "{count} offers"
},
"meta": {
"title": "Logistics hub | Optovia",
"title_with_name": "{name} — Logistics hub | Optovia",
"description": "Logistics hub {name}, {country} — {offers} offers from {suppliers} suppliers"
},
"nearbyHubs": {
"byRoad": "By Road",
"byRail": "By Rail",
"empty": "No connections available"
}
}
}

View File

@@ -0,0 +1,20 @@
{
"catalogHubsSection": {
"header": {
"title": "Key hubs and countries"
},
"actions": {
"view_all": "View all"
},
"empty": {
"no_hubs": "No hubs available"
},
"filters": {
"all": "All",
"auto": "Auto",
"rail": "Rail",
"sea": "Sea",
"air": "Air"
}
}
}

View File

@@ -0,0 +1,13 @@
{
"catalogLanding": {
"states": {
"loading": "Loading catalog data..."
},
"actions": {
"open_map": "Open map"
},
"labels": {
"distance_km": "{km} km"
}
}
}

View File

@@ -0,0 +1,29 @@
{
"catalogMap": {
"states": {
"loading": "Loading locations...",
"no_hubs": "No hubs available",
"no_suppliers": "No suppliers available",
"no_offers": "No offers available"
},
"actions": {
"list_view": "Back to catalog"
},
"tabs": {
"hubs": "Hubs",
"suppliers": "Suppliers",
"offers": "Offers"
},
"empty": {
"hubs": "No hubs available",
"offers": "No offers available",
"suppliers": "No suppliers available"
},
"labels": {
"country_unknown": "Country not specified",
"distance_from_moscow": "{km} km from Moscow"
},
"hubsTab": "Hubs",
"noHubs": "No hubs"
}
}

View File

@@ -0,0 +1,41 @@
{
"catalogOffer": {
"states": {
"loading": "Loading offer..."
},
"not_found": {
"title": "Offer not found",
"subtitle": "The page may have been removed or the address is incorrect"
},
"actions": {
"back_to_catalog": "Back to catalog"
},
"sections": {
"description": {
"title": "Description"
},
"supplier": {
"title": "Supplier"
},
"location": {
"title": "Location"
}
},
"labels": {
"per_unit": "per {unit}",
"quantity_with_unit": "{quantity} {unit}",
"valid_until": "Valid until {date}"
},
"badges": {
"valid_until": "until {date}"
},
"units": {
"ton_short": "t"
},
"meta": {
"title": "Offer | Optovia",
"title_with_name": "{title} | Optovia",
"description": "Offer {title}"
}
}
}

View File

@@ -0,0 +1,9 @@
{
"catalogOfferCard": {
"labels": {
"quantity_with_unit": "{quantity} {unit}",
"default_unit": "t",
"country_unknown": "Not specified"
}
}
}

View File

@@ -0,0 +1,17 @@
{
"catalogOffersSection": {
"header": {
"title": "Offers"
},
"actions": {
"view_all": "View all"
},
"filters": {
"all": "All",
"active": "Active"
},
"empty": {
"no_offers": "No active offers"
}
}
}

View File

@@ -0,0 +1,59 @@
{
"catalogProduct": {
"states": {
"loading": "Loading product info..."
},
"not_found": {
"title": "Product not found",
"subtitle": "The page may have been removed or the address is incorrect"
},
"actions": {
"back_to_catalog": "Back to catalog"
},
"labels": {
"category_unknown": "Category not specified",
"offers_count": "{count} offers",
"valid_until": "Valid until {date}",
"default_supplier": "Supplier",
"supplier_offers": "{count} offers",
"in_stock": "In stock",
"per_unit": "per {unit}",
"price_single": "${price}",
"price_range": "${min} - ${max}"
},
"stats": {
"offers": "Active offers",
"suppliers": "Suppliers",
"locations": "Locations",
"price_range": "Price range"
},
"sections": {
"offers": {
"title": "Current offers"
},
"suppliers": {
"title": "Suppliers for this product"
},
"locations": {
"title": "Where this product is available"
}
},
"status": {
"active": "Active",
"draft": "Draft",
"cancelled": "Cancelled",
"closed": "Closed",
"unknown": "Unknown"
},
"cta": {
"title": "Need this product?",
"subtitle": "Create a request and get offers from verified suppliers",
"action": "Create request"
},
"meta": {
"title": "Product | Optovia",
"title_with_name": "{name} | Optovia",
"description": "{name} — {offers} offers from {suppliers} suppliers"
}
}
}

View File

@@ -0,0 +1,40 @@
{
"catalogSupplier": {
"states": {
"loading": "Loading supplier info..."
},
"not_found": {
"title": "Supplier not found",
"subtitle": "The page may have been removed or the address is incorrect"
},
"actions": {
"back_to_catalog": "Back to catalog"
},
"sections": {
"offers": {
"title": "Active offers"
},
"products": {
"title": "Products"
},
"locations": {
"title": "Supply geography"
}
},
"badges": {
"verified": "Verified",
"offers": "{count} offers"
},
"labels": {
"on_time": "{percent}% on time",
"on_time_default": "89% on time",
"trusted_partner": "Trusted partner"
},
"meta": {
"title": "Supplier | Optovia",
"title_with_name": "{name} — Supplier | Optovia",
"description": "Supplier information",
"description_with_name": "Supplier information for {name}"
}
}
}

View File

@@ -0,0 +1,17 @@
{
"catalogSuppliersSection": {
"header": {
"title": "Verified companies"
},
"actions": {
"view_all": "View all"
},
"filters": {
"all": "All",
"verified": "Verified"
},
"empty": {
"no_suppliers": "No registered companies"
}
}
}

View File

@@ -0,0 +1,40 @@
{
"clientOfferForm": {
"header": {
"title": "Product details"
},
"actions": {
"back": "Back to selection",
"chooseAnother": "Choose another product",
"save": "Save",
"saving": "Saving..."
},
"error": {
"title": "Error",
"retry": "Try again",
"load": "Failed to load data",
"save": "Failed to save data"
},
"states": {
"loading": "Loading data..."
},
"noSchema": {
"title": "Schema not configured",
"description": "The product \"{name}\" has no characteristics schema in TerminusDB. Contact administrator."
},
"errors": {
"productNotFound": "Product with UUID {uuid} not found",
"schemaNotFound": "Schema \"{schema}\" not found in TerminusDB"
},
"labels": {
"location": "Location",
"location_empty": "No locations available"
},
"success": {
"saved": "Data saved!\\n\\n{payload}"
},
"debug": {
"schema_missing": "not specified"
}
}
}

View File

@@ -0,0 +1,39 @@
{
"clientOffersList": {
"header": {
"title": "My offers"
},
"actions": {
"add": "Add",
"addOffer": "Add offer"
},
"error": {
"title": "Error",
"retry": "Try again",
"load": "Failed to load offers"
},
"states": {
"loading": "Loading offers..."
},
"labels": {
"untitled": "Untitled",
"quantity": "Quantity",
"price": "Price",
"location": "Location",
"valid_until": "Valid until",
"not_specified": "Not specified",
"invalid_date": "Invalid date"
},
"status": {
"active": "Active",
"draft": "Draft",
"expired": "Expired",
"sold": "Sold",
"unknown": "Unknown"
},
"empty": {
"title": "No offers",
"subtitle": "Create your first offer"
}
}
}

View File

@@ -0,0 +1,20 @@
{
"clientProfile": {
"actions": {
"debugTokens": "Debug tokens"
},
"debugTokens": {
"title": "Debug tokens",
"idToken": "ID Token",
"claims": "Claims",
"error": "Unable to load tokens"
},
"states": {
"loading": "Loading profile..."
},
"error": {
"load": "Failed to load profile",
"save": "Failed to save profile"
}
}
}

View File

@@ -0,0 +1,7 @@
{
"clientRedirect": {
"status": {
"redirecting": "Redirecting to home..."
}
}
}

View File

@@ -0,0 +1,82 @@
{
"clientTeam": {
"header": {
"title": "Your company",
"createTitle": "Create company"
},
"actions": {
"switch": "Switch company",
"add": "Add",
"addCompany": "Add company",
"inviteWip": "Member invitation is in development"
},
"error": {
"title": "Error",
"retry": "Retry",
"load": "Failed to load companies"
},
"loading": {
"message": "Loading companies..."
},
"empty": {
"title": "You have no company",
"subtitle": "Create a company to work on the platform",
"cta": "Become a member"
},
"kyc": {
"notice": "To work on the platform, complete company verification (KYC)",
"button": "Complete verification →",
"pending": {
"title": "Application under review",
"description": "Your verification request is being reviewed. We will notify you of the result."
},
"approved": {
"title": "Verification complete",
"description": "Your company is being created. Please refresh the page in a few seconds."
},
"empty": {
"title": "Company verification",
"description": "To work on the platform, you need to complete company verification (KYC)",
"cta": "Start verification"
}
},
"members": {
"title": "Members",
"invited": "Invited"
},
"inviteCard": {
"title": "Invite"
},
"invitations": {
"pending": "Pending response",
"sent": "Invitation sent"
},
"membersLocked": {
"title": "🔒 Members",
"subtitle": "Member management will be available after verification"
},
"kycStatus": {
"approved": "Verified",
"inReview": "Under review",
"pending": "Verification required",
"rejected": "Verification rejected",
"default": "Verification required"
},
"roles": {
"owner": "Owner",
"admin": "Administrator",
"manager": "Manager",
"member": "Member"
},
"invite": {
"title": "Invite member",
"email": "Email",
"emailPlaceholder": "Enter email address",
"role": "Role",
"submit": "Send invitation",
"cancel": "Cancel",
"error": "Failed to send invitation",
"success": "Invitation sent"
}
}
}

View File

@@ -0,0 +1,11 @@
{
"clientTeamSwitch": {
"loading": {
"message": "Loading teams..."
},
"error": {
"load": "Failed to load teams",
"switch": "Failed to switch team"
}
}
}

View File

@@ -0,0 +1,23 @@
{
"common": {
"loading": "Loading...",
"save": "Save",
"cancel": "Cancel",
"refresh": "Refresh",
"error": "Error",
"success": "Success",
"retry": "Retry",
"actions": {
"load_more": "Load more"
},
"pagination": {
"showing": "Showing {shown} of {total}"
},
"selectLocation": "Select location",
"theme_dark": "Dark mode",
"theme_light": "Light mode",
"values": {
"not_available": "Not available"
}
}
}

8
i18n/locales/en/cta.json Normal file
View File

@@ -0,0 +1,8 @@
{
"cta": {
"title": "Ready to Start Trading?",
"description": "Join thousands of companies already using Optovia for their deals",
"start_selling": "Start Selling",
"start_buying": "Start Buying"
}
}

View File

@@ -0,0 +1,34 @@
{
"dashboard": {
"title": "Dashboard",
"home": "Home",
"profile": "Profile",
"team": "Team",
"orders": "My Orders",
"favorites": "Favorites",
"products": "My Products",
"analytics": "Analytics",
"welcome": "Welcome to your Optovia personal dashboard",
"profile_info": "Profile Information",
"activity": "Activity",
"quick_actions": "Quick Actions",
"new_calculation": "New calculation",
"notifications": "Notifications",
"visits_today": "Visits today",
"product_views": "Product views",
"last_login": "Last login",
"find_products": "Find Products",
"search_marketplace": "Search marketplace",
"materials": "Materials",
"catalog": "Product catalog",
"profile_settings": "Account settings",
"pass_kyc": "Complete KYC Verification",
"pass_kyc_desc": "Verify your identity to access all features",
"add_team_member": "Add Team Member",
"add_team_member_desc": "Invite colleagues to collaborate",
"complete_profile": "Complete Profile",
"complete_profile_desc": "Add company information and contacts",
"switch_company": "Switch Company",
"locations_description": "Warehouses and delivery points"
}
}

View File

@@ -0,0 +1,11 @@
{
"footer": {
"buyers": "For Buyers",
"suppliers": "For Suppliers",
"services": "For Service Companies",
"rights": "All rights reserved",
"privacy": "Privacy Policy",
"terms": "Terms of Service",
"support": "Support"
}
}

View File

@@ -0,0 +1,36 @@
{
"ganttTimeline": {
"states": {
"loading": "Loading timeline..."
},
"legend": {
"title": "Delivery stages",
"auto": "Road transport",
"sea": "Sea transport",
"rail": "Rail transport",
"services": "Services"
},
"modal": {
"title": "Trip details",
"company": {
"title": "Company",
"tax_id": "Tax ID:"
},
"dates": {
"title": "Dates",
"planned_loading": "Planned loading:",
"actual_loading": "Actual loading:",
"planned_unloading": "Planned unloading:",
"actual_unloading": "Actual unloading:"
},
"weight": {
"title": "Weight",
"planned": "Planned:",
"at_loading": "At loading:",
"at_unloading": "At unloading:",
"unit": "t"
},
"not_specified": "Not specified"
}
}
}

View File

@@ -0,0 +1,27 @@
{
"goods": {
"title": "Goods",
"back": "Back to Search",
"filter_placeholder": "Search materials",
"all_categories": "All Categories",
"metals": "Metals",
"energy": "Energy Resources",
"chemicals": "Chemicals",
"per_ton": "per ton",
"filters": "Filters",
"search": "Search",
"category": "Category",
"price_range": "Price Range",
"grid_view": "Grid",
"list_view": "List",
"description": "Materials and products available on the platform",
"error": {
"title": "Failed to load",
"retry": "Try again"
},
"empty": {
"title": "No products",
"description": "Products have not been added to the platform yet"
}
}
}

View File

@@ -0,0 +1,17 @@
{
"howto": {
"title": "How It Works",
"step1": {
"title": "Find Materials",
"description": "Select the raw materials you need, specify quantity and delivery location"
},
"step2": {
"title": "Compare Offers",
"description": "Get offers from verified suppliers with various logistics options"
},
"step3": {
"title": "Choose Services",
"description": "Add financing, insurance and quality control to your deal"
}
}
}

8
i18n/locales/en/kyc.json Normal file
View File

@@ -0,0 +1,8 @@
{
"kyc": {
"verification_status": "Verification Status",
"team_verification_description": "Complete team verification to create orders",
"start_verification": "Start Verification",
"check_status_in_odoo": "Status is being reviewed by administrator"
}
}

View File

@@ -0,0 +1,63 @@
{
"kycOverview": {
"header": {
"title": "KYC verification"
},
"errors": {
"title": "Error",
"retry": "Retry",
"not_authenticated": "User not authenticated",
"load_failed": "Failed to load KYC data"
},
"states": {
"loading": "Loading verification status..."
},
"labels": {
"approved_at": "Approved {date}"
},
"actions": {
"retry": "Retry verification",
"back_to_team": "Back to team"
},
"choose_country": {
"title": "Select a country for verification",
"subtitle": "Complete company verification to access all platform features."
},
"countries": {
"russia": {
"title": "Russia",
"description": "Verification via INN with auto-fill from FTS database",
"badge": "Available"
},
"kazakhstan": {
"title": "Kazakhstan",
"description": "Verification via BIN (soon)",
"badge": "Coming soon"
}
},
"info": {
"title": "About verification",
"point1": "Verification takes 1-2 business days",
"point2": "Data auto-filled from official sources",
"point3": "Full platform access after verification"
},
"status": {
"title": {
"pending": "Application under review",
"in_review": "Documents are being checked",
"approved": "Verification passed",
"rejected": "Verification rejected",
"expired": "Application expired",
"unknown": "Unknown status"
},
"description": {
"pending": "Your application is processing. Expect results within 1-2 business days.",
"in_review": "Specialists are checking documents and company data.",
"approved": "Congratulations! The company has passed verification.",
"rejected": "Verification rejected. Check data and try again.",
"expired": "Application expired. Submit a new one.",
"unknown": "Unknown application status"
}
}
}
}

View File

@@ -0,0 +1,23 @@
{
"kycRussia": {
"header": {
"title": "Verification for Russia",
"subtitle": "Fill in your organization data. Fields will be auto-filled via INN lookup."
},
"states": {
"submitting": "Submitting verification request..."
},
"errors": {
"title": "Submission error",
"not_authenticated": "User not authenticated",
"no_team": "Please create a company first",
"create_failed": "Failed to create request",
"submit_failed": "An error occurred while submitting the request"
},
"success": {
"title": "Request sent successfully",
"description": "Your verification request has been accepted. Result will be ready within 1-2 business days.",
"cta": "View request status →"
}
}
}

View File

@@ -0,0 +1,14 @@
{
"locations": {
"title": "Select Delivery Location",
"back": "Back to Search",
"list_view": "List",
"map_view": "Map",
"filters": "Filters",
"search": "Search City",
"search_placeholder": "City name",
"regions": "Federal Districts",
"all_regions": "All Regions",
"all_countries": "All countries"
}
}

8
i18n/locales/en/nav.json Normal file
View File

@@ -0,0 +1,8 @@
{
"nav": {
"search": "Search",
"offers": "Offers",
"suppliers": "Suppliers",
"hubs": "Hubs"
}
}

View File

@@ -0,0 +1,22 @@
{
"offersNew": {
"header": {
"title": "Select a product"
},
"actions": {
"back": "Back"
},
"errors": {
"title": "Error",
"retry": "Try again",
"load_failed": "Failed to load products"
},
"states": {
"loading": "Loading products..."
},
"empty": {
"title": "No products available",
"description": "Contact the administrator to add products"
}
}
}

View File

@@ -0,0 +1,31 @@
{
"orderCalendar": {
"header": {
"title": "Trips calendar"
},
"filters": {
"loading": "Loading",
"unloading": "Unloading"
},
"labels": {
"loading": "Loading",
"unloading": "Unloading",
"weight_unit": "t",
"service": "Service",
"service_stage": "Service stage"
},
"months": "Aug 2024|Sep 2024|Oct 2024",
"stats": {
"title": "Period stats:",
"trips": "Trips:",
"companies": "Companies:",
"weight": "Weight:"
},
"transport": {
"auto": "Road transport",
"rail": "Rail transport",
"sea": "Sea transport",
"air": "Air transport"
}
}
}

View File

@@ -0,0 +1,12 @@
{
"orderMap": {
"header": {
"title": "Logistics route"
},
"stats": {
"distance_value": "{km} km",
"distance_label": "approximate distance",
"countries_label": "countries in route"
}
}
}

View File

@@ -0,0 +1,7 @@
{
"orders": {
"no_orders": "No orders",
"no_orders_desc": "Start by creating a new calculation",
"create_new": "Create new calculation"
}
}

View File

@@ -0,0 +1,51 @@
{
"ordersDetail": {
"header": {
"title": "Order #{id}"
},
"errors": {
"title": "Error",
"retry": "Try again",
"load_failed": "Failed to load order"
},
"states": {
"loading": "Loading order details..."
},
"labels": {
"unit_tons": "tons",
"product_unknown": "Product",
"delivery_days": "delivery days",
"weight_unit": "t",
"trips": "trips",
"company_unknown": "Company not specified",
"price_zero": "0 ₽",
"dates_undefined": "Dates not set"
},
"sections": {
"stages": {
"title": "Route stages",
"companies": {
"title": "Companies",
"empty": "No companies assigned"
},
"route_title": "Stage route",
"empty": "Route stages are not defined"
},
"map": {
"title": "Overall route map"
},
"timeline": {
"title": "Delivery timeline",
"empty": "No data for timeline"
}
},
"status": {
"pending": "Pending",
"processing": "Processing",
"in_transit": "In transit",
"delivered": "Delivered",
"cancelled": "Cancelled",
"unknown": "Unknown"
}
}
}

View File

@@ -0,0 +1,29 @@
{
"ordersList": {
"actions": {
"new_calc": "New calculation"
},
"errors": {
"retry": "Try again"
},
"states": {
"loading": "Loading orders..."
},
"filters": {
"all": "All",
"pending": "Pending",
"processing": "Processing",
"in_transit": "In Transit",
"delivered": "Delivered"
},
"card": {
"order_label": "Order",
"route": "Route",
"product": "Product",
"product_loading": "Loading...",
"unit_tons": "tons",
"status": "Status",
"stages_completed": "Stages completed: {done} / {total}"
}
}
}

View File

@@ -0,0 +1,30 @@
{
"profile": {
"description": "Manage your profile data and account settings",
"personal_info": "Personal Information",
"account_settings": "Account Settings",
"username": "Username",
"first_name": "First Name",
"first_name_placeholder": "Enter first name",
"last_name": "Last Name",
"last_name_placeholder": "Enter last name",
"phone": "Phone",
"phone_placeholder": "+1 XXX XXX XXXX",
"avatar": "Avatar",
"regenerate_avatar": "Regenerate avatar",
"save": "Save",
"saving": "Saving",
"role": "Role",
"language": "Interface language",
"notifications_settings": "Notifications",
"email_notifications": "Email notifications about new offers",
"order_notifications": "Order update notifications",
"security": "Security",
"two_factor": "Two-factor authentication",
"not_configured": "Not configured",
"last_login": "Last login",
"status": "Status",
"active": "Active",
"not_specified": "Not specified"
}
}

View File

@@ -0,0 +1,46 @@
{
"profileAddresses": {
"header": {
"title": "My addresses"
},
"actions": {
"add": "Add address",
"confirm_delete": "Delete this address?",
"delete": "Delete"
},
"form": {
"title": "New address",
"name": {
"label": "Name",
"placeholder": "e.g. Office, Warehouse, Production"
},
"address": {
"label": "Address",
"placeholder": "Full address"
},
"latitude": {
"label": "Latitude",
"placeholder": "55.7558"
},
"longitude": {
"label": "Longitude",
"placeholder": "37.6173"
},
"save": "Save",
"saving": "Saving...",
"mapLabel": "Select a point on the map"
},
"states": {
"loading": "Loading addresses..."
},
"labels": {
"default": "Default"
},
"empty": {
"description": "You have no saved addresses yet",
"cta": "Add first address",
"title": "No addresses"
},
"status": {}
}
}

View File

@@ -0,0 +1,34 @@
{
"roles": {
"title": "Who Our Platform Is For",
"producers": {
"title": "Producers",
"description": "Sell raw materials directly to buyers through our platform",
"benefit1": "Sales bulletin board",
"benefit2": "Auction tender participation",
"benefit3": "Access to financing",
"benefit4": "Logistics solutions",
"cta": "Start Selling"
},
"buyers": {
"title": "Buyers",
"description": "Find and purchase raw materials with quality and delivery guarantees",
"benefit1": "Search and compare offers",
"benefit2": "Purchase financing",
"benefit3": "Deal insurance",
"benefit4": "Product quality control",
"cta": "Start Buying"
},
"services": {
"title": "Service Companies",
"description": "Provide services to marketplace participants and expand your client base",
"benefit1": "Logistics companies",
"benefit2": "Financial organizations",
"benefit3": "Quality control laboratories",
"benefit4": "Insurance companies",
"cta": "Become a Partner"
},
"buyer": "Buyer",
"seller": "Seller"
}
}

View File

@@ -0,0 +1,15 @@
{
"routeMap": {
"states": {
"loading": "Loading map..."
},
"popup": {
"companies": "Companies:"
},
"points": {
"source": "Departure point",
"destination": "Destination point",
"service": "Service point"
}
}
}

View File

@@ -0,0 +1,81 @@
{
"search": {
"title": "Find Raw Materials",
"subtitle": "& Industrial Services",
"description": "Connect with suppliers, get competitive prices, and streamline your procurement process",
"product_label": "What are you looking for?",
"product_placeholder": "Select material type",
"quantity_label": "Quantity",
"quantity_placeholder": "Amount",
"location_label": "Delivery to",
"location_placeholder": "City or region",
"search_button": "Search",
"order_created": "Order Created",
"order_number": "Number",
"verified_suppliers": "verified suppliers",
"verified_logistics": "verified logistics companies",
"verified_banks": "verified banks",
"verified_insurance": "verified insurance companies",
"delivery": "delivery",
"annual": "annually",
"from_deal": "of deal value",
"suppliers_geography": "Suppliers Geography",
"total_cost": "Total Cost",
"material": "Material",
"delivery_cost": "Delivery",
"insurance_cost": "Insurance",
"optional": "opt.",
"total": "Total",
"implementation_time": "Implementation time",
"savings": "Savings",
"geography": "Geography",
"need_help": "Need help?",
"manager_title": "Raw materials market expert",
"presentation": "Presentation",
"presentation_duration": "1 hour",
"any_language": "In any language",
"contact": "Contact",
"continue": "Continue",
"results": "Search Results",
"delivery_options": "Delivery Options",
"new_search": "New Search",
"logistics_cost": "logistics cost",
"choose_supplier": "Choose Supplier",
"filters": "Filters",
"supplier_filter": "Search Supplier",
"supplier_placeholder": "Company name",
"logistics_type": "Logistics Type",
"all_logistics": "All Options",
"auto_only": "Auto Only",
"multimodal": "Multimodal",
"list_view": "List",
"map_view": "Map",
"placeholder": "Search products, suppliers...",
"error": "Error!",
"units": {
"tons_short": "t"
},
"popular_requests": "Popular requests",
"examples": {
"metal_sheet": {
"product": "Sheet metal",
"location": "Moscow"
},
"green_coffee": {
"product": "Green coffee",
"location": "Vladivostok"
},
"wheat": {
"product": "Wheat",
"location": "Rostov-on-Don"
},
"cocoa": {
"product": "Cocoa beans",
"location": "Novorossiysk"
}
},
"validation": {
"fill_product_location": "Fill in product and location"
}
}
}

View File

@@ -0,0 +1,12 @@
{
"searchPage": {
"hero": {
"title": "Search and select supplies",
"subtitle": "Enter product, quantity, and location — search without authorization. You can complete in your cabinet."
},
"cta": {
"catalog": "Catalog",
"orders": "My orders"
}
}
}

View File

@@ -0,0 +1,11 @@
{
"sidebar": {
"exchange": "Exchange",
"ordersLogistics": "Orders & Logistics",
"seller": "Seller",
"aiTools": "AI & Tools",
"settings": "Settings",
"createCompany": "Create company",
"joinCompany": "Join company"
}
}

View File

@@ -0,0 +1,9 @@
{
"stats": {
"title": "Optovia in Numbers",
"suppliers": "Suppliers",
"transactions": "Transaction Volume",
"service_companies": "Service Companies",
"support": "Support"
}
}

View File

@@ -0,0 +1,14 @@
{
"supplier": {
"delivery_time": "Delivery Time",
"logistics": "Logistics Companies",
"financing": "Financing",
"insurance": "Insurance",
"quality_control": "Quality Control",
"total_summary": "Total Amount",
"all_services_selected": "All services selected",
"final_cost": "Final Cost",
"back_to_suppliers": "Back to Suppliers",
"place_order": "Place Order"
}
}

View File

@@ -0,0 +1,30 @@
{
"supplierFlow": {
"breadcrumb": {
"home": "Home",
"search_results": "Search results",
"select_services": "Select service companies"
},
"sections": {
"logistics": {
"title": "Logistics",
"subtitle": "Choose a carrier"
},
"financing": {
"title": "Financing",
"subtitle": "Choose a bank"
},
"insurance": {
"title": "Insurance",
"subtitle": "Choose an insurance company"
},
"quality": {
"title": "Quality control",
"subtitle": "Choose a laboratory"
}
},
"labels": {
"rating_reviews": "★ {rating} ({reviews})"
}
}
}

View File

@@ -0,0 +1,40 @@
{
"teams": {
"create_team": "Create Team",
"team_name": "Team Name",
"team_name_placeholder": "Enter team name",
"creating": "Creating...",
"no_team": "You don't have a team",
"no_team_description": "Create a team for collaboration and KYC verification",
"create_first_team": "Become a Member",
"your_teams": "Your Teams",
"create_new_team": "Create New Team",
"members": "Members",
"invite_member": "Invite member",
"kyc_verification": "KYC verification",
"created": "Created",
"view_details": "View Details",
"start_kyc": "Start KYC",
"retry_kyc": "Retry KYC",
"description": "Manage teams and pass verification",
"status": {
"pending_kyc": "KYC Required",
"kyc_in_review": "KYC Under Review",
"kyc_approved": "KYC Approved",
"kyc_rejected": "KYC Rejected",
"suspended": "Suspended"
},
"company_type": {
"label": "Company type",
"buyer": "Buyer",
"seller": "Seller"
},
"errors": {
"create_failed": "Failed to create team"
},
"active": "Active",
"create_description": "Add a team for work",
"switch_description": "Choose a team to work with or create a new one",
"switch_to": "Switch to"
}
}

View File

@@ -0,0 +1,13 @@
{
"testMap": {
"title": "Mapbox test — space flight",
"controls": {
"duration": "Duration (ms):",
"min_zoom": "Min. zoom (altitude):",
"min_zoom_hint": "(lower = higher into space)",
"target_zoom": "Target zoom:",
"style": "Map style:",
"globe": "Globe projection (3D globe)"
}
}
}

View File

@@ -0,0 +1,5 @@
{
"testimonials": {
"title": "Client Testimonials"
}
}

View File

@@ -0,0 +1,7 @@
{
"timelineStages": {
"labels": {
"trips": "{count} trips"
}
}
}