Initial commit from monorepo
This commit is contained in:
6
i18n/locales/en/about.json
Normal file
6
i18n/locales/en/about.json
Normal 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."
|
||||
}
|
||||
}
|
||||
29
i18n/locales/en/aiAssistants.json
Normal file
29
i18n/locales/en/aiAssistants.json
Normal 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
17
i18n/locales/en/auth.json
Normal 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"
|
||||
}
|
||||
}
|
||||
28
i18n/locales/en/billing.json
Normal file
28
i18n/locales/en/billing.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
19
i18n/locales/en/breadcrumbs.json
Normal file
19
i18n/locales/en/breadcrumbs.json
Normal 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"
|
||||
}
|
||||
}
|
||||
11
i18n/locales/en/cabinetNav.json
Normal file
11
i18n/locales/en/cabinetNav.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"cabinetNav": {
|
||||
"orders": "My orders",
|
||||
"addresses": "My addresses",
|
||||
"billing": "Balance",
|
||||
"profile": "Profile",
|
||||
"team": "Company",
|
||||
"offers": "My offers",
|
||||
"ai": "AI assistant"
|
||||
}
|
||||
}
|
||||
7
i18n/locales/en/catalogAddress.json
Normal file
7
i18n/locales/en/catalogAddress.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"catalogAddress": {
|
||||
"badges": {
|
||||
"default": "Default"
|
||||
}
|
||||
}
|
||||
}
|
||||
47
i18n/locales/en/catalogHub.json
Normal file
47
i18n/locales/en/catalogHub.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
20
i18n/locales/en/catalogHubsSection.json
Normal file
20
i18n/locales/en/catalogHubsSection.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
13
i18n/locales/en/catalogLanding.json
Normal file
13
i18n/locales/en/catalogLanding.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"catalogLanding": {
|
||||
"states": {
|
||||
"loading": "Loading catalog data..."
|
||||
},
|
||||
"actions": {
|
||||
"open_map": "Open map"
|
||||
},
|
||||
"labels": {
|
||||
"distance_km": "{km} km"
|
||||
}
|
||||
}
|
||||
}
|
||||
29
i18n/locales/en/catalogMap.json
Normal file
29
i18n/locales/en/catalogMap.json
Normal 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"
|
||||
}
|
||||
}
|
||||
41
i18n/locales/en/catalogOffer.json
Normal file
41
i18n/locales/en/catalogOffer.json
Normal 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}"
|
||||
}
|
||||
}
|
||||
}
|
||||
9
i18n/locales/en/catalogOfferCard.json
Normal file
9
i18n/locales/en/catalogOfferCard.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"catalogOfferCard": {
|
||||
"labels": {
|
||||
"quantity_with_unit": "{quantity} {unit}",
|
||||
"default_unit": "t",
|
||||
"country_unknown": "Not specified"
|
||||
}
|
||||
}
|
||||
}
|
||||
17
i18n/locales/en/catalogOffersSection.json
Normal file
17
i18n/locales/en/catalogOffersSection.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
59
i18n/locales/en/catalogProduct.json
Normal file
59
i18n/locales/en/catalogProduct.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
40
i18n/locales/en/catalogSupplier.json
Normal file
40
i18n/locales/en/catalogSupplier.json
Normal 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}"
|
||||
}
|
||||
}
|
||||
}
|
||||
17
i18n/locales/en/catalogSuppliersSection.json
Normal file
17
i18n/locales/en/catalogSuppliersSection.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
40
i18n/locales/en/clientOfferForm.json
Normal file
40
i18n/locales/en/clientOfferForm.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
39
i18n/locales/en/clientOffersList.json
Normal file
39
i18n/locales/en/clientOffersList.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
20
i18n/locales/en/clientProfile.json
Normal file
20
i18n/locales/en/clientProfile.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
7
i18n/locales/en/clientRedirect.json
Normal file
7
i18n/locales/en/clientRedirect.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"clientRedirect": {
|
||||
"status": {
|
||||
"redirecting": "Redirecting to home..."
|
||||
}
|
||||
}
|
||||
}
|
||||
82
i18n/locales/en/clientTeam.json
Normal file
82
i18n/locales/en/clientTeam.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
11
i18n/locales/en/clientTeamSwitch.json
Normal file
11
i18n/locales/en/clientTeamSwitch.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"clientTeamSwitch": {
|
||||
"loading": {
|
||||
"message": "Loading teams..."
|
||||
},
|
||||
"error": {
|
||||
"load": "Failed to load teams",
|
||||
"switch": "Failed to switch team"
|
||||
}
|
||||
}
|
||||
}
|
||||
23
i18n/locales/en/common.json
Normal file
23
i18n/locales/en/common.json
Normal 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
8
i18n/locales/en/cta.json
Normal 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"
|
||||
}
|
||||
}
|
||||
34
i18n/locales/en/dashboard.json
Normal file
34
i18n/locales/en/dashboard.json
Normal 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"
|
||||
}
|
||||
}
|
||||
11
i18n/locales/en/footer.json
Normal file
11
i18n/locales/en/footer.json
Normal 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"
|
||||
}
|
||||
}
|
||||
36
i18n/locales/en/ganttTimeline.json
Normal file
36
i18n/locales/en/ganttTimeline.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
27
i18n/locales/en/goods.json
Normal file
27
i18n/locales/en/goods.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
17
i18n/locales/en/howto.json
Normal file
17
i18n/locales/en/howto.json
Normal 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
8
i18n/locales/en/kyc.json
Normal 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"
|
||||
}
|
||||
}
|
||||
63
i18n/locales/en/kycOverview.json
Normal file
63
i18n/locales/en/kycOverview.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
23
i18n/locales/en/kycRussia.json
Normal file
23
i18n/locales/en/kycRussia.json
Normal 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 →"
|
||||
}
|
||||
}
|
||||
}
|
||||
14
i18n/locales/en/locations.json
Normal file
14
i18n/locales/en/locations.json
Normal 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
8
i18n/locales/en/nav.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"nav": {
|
||||
"search": "Search",
|
||||
"offers": "Offers",
|
||||
"suppliers": "Suppliers",
|
||||
"hubs": "Hubs"
|
||||
}
|
||||
}
|
||||
22
i18n/locales/en/offersNew.json
Normal file
22
i18n/locales/en/offersNew.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
31
i18n/locales/en/orderCalendar.json
Normal file
31
i18n/locales/en/orderCalendar.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
12
i18n/locales/en/orderMap.json
Normal file
12
i18n/locales/en/orderMap.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"orderMap": {
|
||||
"header": {
|
||||
"title": "Logistics route"
|
||||
},
|
||||
"stats": {
|
||||
"distance_value": "{km} km",
|
||||
"distance_label": "approximate distance",
|
||||
"countries_label": "countries in route"
|
||||
}
|
||||
}
|
||||
}
|
||||
7
i18n/locales/en/orders.json
Normal file
7
i18n/locales/en/orders.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"orders": {
|
||||
"no_orders": "No orders",
|
||||
"no_orders_desc": "Start by creating a new calculation",
|
||||
"create_new": "Create new calculation"
|
||||
}
|
||||
}
|
||||
51
i18n/locales/en/ordersDetail.json
Normal file
51
i18n/locales/en/ordersDetail.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
29
i18n/locales/en/ordersList.json
Normal file
29
i18n/locales/en/ordersList.json
Normal 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}"
|
||||
}
|
||||
}
|
||||
}
|
||||
30
i18n/locales/en/profile.json
Normal file
30
i18n/locales/en/profile.json
Normal 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"
|
||||
}
|
||||
}
|
||||
46
i18n/locales/en/profileAddresses.json
Normal file
46
i18n/locales/en/profileAddresses.json
Normal 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": {}
|
||||
}
|
||||
}
|
||||
34
i18n/locales/en/roles.json
Normal file
34
i18n/locales/en/roles.json
Normal 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"
|
||||
}
|
||||
}
|
||||
15
i18n/locales/en/routeMap.json
Normal file
15
i18n/locales/en/routeMap.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"routeMap": {
|
||||
"states": {
|
||||
"loading": "Loading map..."
|
||||
},
|
||||
"popup": {
|
||||
"companies": "Companies:"
|
||||
},
|
||||
"points": {
|
||||
"source": "Departure point",
|
||||
"destination": "Destination point",
|
||||
"service": "Service point"
|
||||
}
|
||||
}
|
||||
}
|
||||
81
i18n/locales/en/search.json
Normal file
81
i18n/locales/en/search.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
12
i18n/locales/en/searchPage.json
Normal file
12
i18n/locales/en/searchPage.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
11
i18n/locales/en/sidebar.json
Normal file
11
i18n/locales/en/sidebar.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"sidebar": {
|
||||
"exchange": "Exchange",
|
||||
"ordersLogistics": "Orders & Logistics",
|
||||
"seller": "Seller",
|
||||
"aiTools": "AI & Tools",
|
||||
"settings": "Settings",
|
||||
"createCompany": "Create company",
|
||||
"joinCompany": "Join company"
|
||||
}
|
||||
}
|
||||
9
i18n/locales/en/stats.json
Normal file
9
i18n/locales/en/stats.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"stats": {
|
||||
"title": "Optovia in Numbers",
|
||||
"suppliers": "Suppliers",
|
||||
"transactions": "Transaction Volume",
|
||||
"service_companies": "Service Companies",
|
||||
"support": "Support"
|
||||
}
|
||||
}
|
||||
14
i18n/locales/en/supplier.json
Normal file
14
i18n/locales/en/supplier.json
Normal 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"
|
||||
}
|
||||
}
|
||||
30
i18n/locales/en/supplierFlow.json
Normal file
30
i18n/locales/en/supplierFlow.json
Normal 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})"
|
||||
}
|
||||
}
|
||||
}
|
||||
40
i18n/locales/en/teams.json
Normal file
40
i18n/locales/en/teams.json
Normal 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"
|
||||
}
|
||||
}
|
||||
13
i18n/locales/en/testMap.json
Normal file
13
i18n/locales/en/testMap.json
Normal 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)"
|
||||
}
|
||||
}
|
||||
}
|
||||
5
i18n/locales/en/testimonials.json
Normal file
5
i18n/locales/en/testimonials.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"testimonials": {
|
||||
"title": "Client Testimonials"
|
||||
}
|
||||
}
|
||||
7
i18n/locales/en/timelineStages.json
Normal file
7
i18n/locales/en/timelineStages.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"timelineStages": {
|
||||
"labels": {
|
||||
"trips": "{count} trips"
|
||||
}
|
||||
}
|
||||
}
|
||||
6
i18n/locales/ru/about.json
Normal file
6
i18n/locales/ru/about.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"about": {
|
||||
"title": "Маркетплейс сырья и сервисов",
|
||||
"description": "Цифровая платформа, объединяющая производителей, покупателей, логистические компании, финансовые организации и сервисы контроля качества в единую экосистему."
|
||||
}
|
||||
}
|
||||
29
i18n/locales/ru/aiAssistants.json
Normal file
29
i18n/locales/ru/aiAssistants.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"aiAssistants": {
|
||||
"header": {
|
||||
"title": "AI агент"
|
||||
},
|
||||
"view": {
|
||||
"fallbackName": "AI помощник",
|
||||
"not_found": "Ассистент не найден",
|
||||
"agentTitle": "Optovia AI агент",
|
||||
"agentSubtitle": "Маршруты, офферы, заказы и статус доставки. Агент использует LangGraph + MCP.",
|
||||
"you": "Вы",
|
||||
"agentName": "Оптовия",
|
||||
"typing": "Агент думает...",
|
||||
"placeholder": "Спросите про офферы, маршруты или статус заказа",
|
||||
"send": "Отправить",
|
||||
"reset": "Очистить",
|
||||
"welcome": "Привет! Я могу найти офферы с маршрутом до вашей точки, подсказать статус заказа и показать узлы логистики.",
|
||||
"error": "Не получилось получить ответ от агента.",
|
||||
"emptyResponse": "Нет ответа от агента."
|
||||
},
|
||||
"assistants": {
|
||||
"optovia": {
|
||||
"name": "Логистический агент",
|
||||
"role": "AI ассистент Optovia",
|
||||
"description": "Агент для маршрутов, офферов и статусов заказов."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
17
i18n/locales/ru/auth.json
Normal file
17
i18n/locales/ru/auth.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"auth": {
|
||||
"login": "Вход",
|
||||
"register": "Регистрация",
|
||||
"logout": "Выход",
|
||||
"welcome_back": "Добро пожаловать",
|
||||
"login_description": "Войдите в свой аккаунт Optovia",
|
||||
"email": "Email",
|
||||
"email_placeholder": "Ваш email",
|
||||
"password": "Пароль",
|
||||
"password_placeholder": "Введите пароль",
|
||||
"login_button": "Войти",
|
||||
"logging_in": "Вход...",
|
||||
"no_account": "Нет аккаунта?",
|
||||
"register_link": "Зарегистрироваться"
|
||||
}
|
||||
}
|
||||
27
i18n/locales/ru/billing.json
Normal file
27
i18n/locales/ru/billing.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"billing": {
|
||||
"header": {
|
||||
"title": "Баланс"
|
||||
},
|
||||
"states": {
|
||||
"loading": "Загрузка баланса..."
|
||||
},
|
||||
"errors": {
|
||||
"title": "Ошибка загрузки",
|
||||
"load_failed": "Не удалось загрузить баланс",
|
||||
"retry": "Повторить"
|
||||
},
|
||||
"balance": {
|
||||
"label": "Текущий баланс",
|
||||
"credits": "Пополнения",
|
||||
"debits": "Списания"
|
||||
},
|
||||
"transactions": {
|
||||
"title": "История операций",
|
||||
"empty": "Операций пока нет",
|
||||
"date": "Дата",
|
||||
"code": "Код",
|
||||
"amount": "Сумма"
|
||||
}
|
||||
}
|
||||
}
|
||||
19
i18n/locales/ru/breadcrumbs.json
Normal file
19
i18n/locales/ru/breadcrumbs.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"breadcrumbs": {
|
||||
"cabinet": "Кабинет",
|
||||
"orders": "Заказы",
|
||||
"addresses": "Адреса",
|
||||
"profile": "Профиль",
|
||||
"team": "Компания",
|
||||
"kyc": "Верификация",
|
||||
"offers": "Предложения",
|
||||
"new": "Создание",
|
||||
"russia": "Россия",
|
||||
"ai": "AI ассистент",
|
||||
"goods": "Товары",
|
||||
"locations": "Локации",
|
||||
"request": "Заявка",
|
||||
"companySwitch": "Смена компании",
|
||||
"tokens": "Токены"
|
||||
}
|
||||
}
|
||||
11
i18n/locales/ru/cabinetNav.json
Normal file
11
i18n/locales/ru/cabinetNav.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"cabinetNav": {
|
||||
"orders": "Мои заказы",
|
||||
"addresses": "Мои адреса",
|
||||
"billing": "Баланс",
|
||||
"profile": "Профиль",
|
||||
"team": "Компания",
|
||||
"offers": "Мои предложения",
|
||||
"ai": "AI ассистент"
|
||||
}
|
||||
}
|
||||
7
i18n/locales/ru/catalogAddress.json
Normal file
7
i18n/locales/ru/catalogAddress.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"catalogAddress": {
|
||||
"badges": {
|
||||
"default": "По умолчанию"
|
||||
}
|
||||
}
|
||||
}
|
||||
47
i18n/locales/ru/catalogHub.json
Normal file
47
i18n/locales/ru/catalogHub.json
Normal file
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"catalogHub": {
|
||||
"states": {
|
||||
"loading": "Загружаем информацию о хабе..."
|
||||
},
|
||||
"not_found": {
|
||||
"title": "Логистический хаб не найден",
|
||||
"subtitle": "Возможно, страница была удалена или указан неверный адрес"
|
||||
},
|
||||
"actions": {
|
||||
"back_to_catalog": "Вернуться в каталог"
|
||||
},
|
||||
"sections": {
|
||||
"offers": {
|
||||
"title": "Предложения в этом хабе"
|
||||
},
|
||||
"suppliers": {
|
||||
"title": "Поставщики, работающие через этот хаб"
|
||||
},
|
||||
"products": {
|
||||
"title": "Доступные товары"
|
||||
}
|
||||
},
|
||||
"empty": {
|
||||
"offers": {
|
||||
"title": "Пока нет предложений",
|
||||
"subtitle": "В этом логистическом хабе пока нет активных предложений. Вы можете разместить своё!"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"default_supplier": "Поставщик"
|
||||
},
|
||||
"badges": {
|
||||
"offers": "{count} предложений"
|
||||
},
|
||||
"meta": {
|
||||
"title": "Логистический хаб | Optovia",
|
||||
"title_with_name": "{name} — Логистический хаб | Optovia",
|
||||
"description": "Логистический хаб {name}, {country} — {offers} предложений от {suppliers} поставщиков"
|
||||
},
|
||||
"nearbyHubs": {
|
||||
"byRoad": "По автодороге",
|
||||
"byRail": "По железной дороге",
|
||||
"empty": "Нет доступных маршрутов"
|
||||
}
|
||||
}
|
||||
}
|
||||
20
i18n/locales/ru/catalogHubsSection.json
Normal file
20
i18n/locales/ru/catalogHubsSection.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"catalogHubsSection": {
|
||||
"header": {
|
||||
"title": "Ключевые хабы и страны"
|
||||
},
|
||||
"actions": {
|
||||
"view_all": "Смотреть все"
|
||||
},
|
||||
"empty": {
|
||||
"no_hubs": "Нет доступных хабов"
|
||||
},
|
||||
"filters": {
|
||||
"all": "Все",
|
||||
"auto": "Авто",
|
||||
"rail": "Ж/д",
|
||||
"sea": "Море",
|
||||
"air": "Авиа"
|
||||
}
|
||||
}
|
||||
}
|
||||
13
i18n/locales/ru/catalogLanding.json
Normal file
13
i18n/locales/ru/catalogLanding.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"catalogLanding": {
|
||||
"states": {
|
||||
"loading": "Загружаем данные каталога..."
|
||||
},
|
||||
"actions": {
|
||||
"open_map": "Открыть карту"
|
||||
},
|
||||
"labels": {
|
||||
"distance_km": "{km} км"
|
||||
}
|
||||
}
|
||||
}
|
||||
29
i18n/locales/ru/catalogMap.json
Normal file
29
i18n/locales/ru/catalogMap.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"catalogMap": {
|
||||
"states": {
|
||||
"loading": "Загружаем локации...",
|
||||
"no_hubs": "Нет доступных хабов",
|
||||
"no_suppliers": "Нет доступных поставщиков",
|
||||
"no_offers": "Нет доступных предложений"
|
||||
},
|
||||
"actions": {
|
||||
"list_view": "Список"
|
||||
},
|
||||
"tabs": {
|
||||
"hubs": "Хабы",
|
||||
"suppliers": "Компании",
|
||||
"offers": "Офферы"
|
||||
},
|
||||
"hubsTab": "Хабы",
|
||||
"noHubs": "Нет хабов",
|
||||
"empty": {
|
||||
"hubs": "Нет доступных хабов",
|
||||
"offers": "Нет доступных предложений",
|
||||
"suppliers": "Нет доступных поставщиков"
|
||||
},
|
||||
"labels": {
|
||||
"country_unknown": "Страна не указана",
|
||||
"distance_from_moscow": "{km} км от Москвы"
|
||||
}
|
||||
}
|
||||
}
|
||||
41
i18n/locales/ru/catalogOffer.json
Normal file
41
i18n/locales/ru/catalogOffer.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"catalogOffer": {
|
||||
"states": {
|
||||
"loading": "Загружаем предложение..."
|
||||
},
|
||||
"not_found": {
|
||||
"title": "Предложение не найдено",
|
||||
"subtitle": "Возможно, страница была удалена или указан неверный адрес"
|
||||
},
|
||||
"actions": {
|
||||
"back_to_catalog": "Вернуться в каталог"
|
||||
},
|
||||
"sections": {
|
||||
"description": {
|
||||
"title": "Описание"
|
||||
},
|
||||
"supplier": {
|
||||
"title": "Поставщик"
|
||||
},
|
||||
"location": {
|
||||
"title": "Локация"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"per_unit": "за {unit}",
|
||||
"quantity_with_unit": "{quantity} {unit}",
|
||||
"valid_until": "Действует до {date}"
|
||||
},
|
||||
"badges": {
|
||||
"valid_until": "до {date}"
|
||||
},
|
||||
"units": {
|
||||
"ton_short": "т"
|
||||
},
|
||||
"meta": {
|
||||
"title": "Предложение | Optovia",
|
||||
"title_with_name": "{title} | Optovia",
|
||||
"description": "Предложение {title}"
|
||||
}
|
||||
}
|
||||
}
|
||||
9
i18n/locales/ru/catalogOfferCard.json
Normal file
9
i18n/locales/ru/catalogOfferCard.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"catalogOfferCard": {
|
||||
"labels": {
|
||||
"quantity_with_unit": "{quantity} {unit}",
|
||||
"default_unit": "т",
|
||||
"country_unknown": "Не указана"
|
||||
}
|
||||
}
|
||||
}
|
||||
17
i18n/locales/ru/catalogOffersSection.json
Normal file
17
i18n/locales/ru/catalogOffersSection.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"catalogOffersSection": {
|
||||
"header": {
|
||||
"title": "Предложения"
|
||||
},
|
||||
"actions": {
|
||||
"view_all": "Смотреть все"
|
||||
},
|
||||
"filters": {
|
||||
"all": "Все",
|
||||
"active": "Активные"
|
||||
},
|
||||
"empty": {
|
||||
"no_offers": "Нет активных предложений"
|
||||
}
|
||||
}
|
||||
}
|
||||
59
i18n/locales/ru/catalogProduct.json
Normal file
59
i18n/locales/ru/catalogProduct.json
Normal file
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"catalogProduct": {
|
||||
"states": {
|
||||
"loading": "Загружаем информацию о товаре..."
|
||||
},
|
||||
"not_found": {
|
||||
"title": "Товар не найден",
|
||||
"subtitle": "Возможно, страница была удалена или указан неверный адрес"
|
||||
},
|
||||
"actions": {
|
||||
"back_to_catalog": "Вернуться в каталог"
|
||||
},
|
||||
"labels": {
|
||||
"category_unknown": "Категория не указана",
|
||||
"offers_count": "{count} предложений",
|
||||
"valid_until": "Действует до {date}",
|
||||
"default_supplier": "Поставщик",
|
||||
"supplier_offers": "{count} предложений",
|
||||
"in_stock": "В наличии",
|
||||
"per_unit": "за {unit}",
|
||||
"price_single": "${price}",
|
||||
"price_range": "${min} - ${max}"
|
||||
},
|
||||
"stats": {
|
||||
"offers": "Активных предложений",
|
||||
"suppliers": "Поставщиков",
|
||||
"locations": "Локаций",
|
||||
"price_range": "Диапазон цен"
|
||||
},
|
||||
"sections": {
|
||||
"offers": {
|
||||
"title": "Актуальные предложения"
|
||||
},
|
||||
"suppliers": {
|
||||
"title": "Поставщики этого товара"
|
||||
},
|
||||
"locations": {
|
||||
"title": "Где доступен этот товар"
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"active": "Активно",
|
||||
"draft": "Черновик",
|
||||
"cancelled": "Отменено",
|
||||
"closed": "Закрыто",
|
||||
"unknown": "Неизвестно"
|
||||
},
|
||||
"cta": {
|
||||
"title": "Нужен этот товар?",
|
||||
"subtitle": "Создайте запрос и получите предложения от проверенных поставщиков",
|
||||
"action": "Создать запрос"
|
||||
},
|
||||
"meta": {
|
||||
"title": "Товар | Optovia",
|
||||
"title_with_name": "{name} | Optovia",
|
||||
"description": "{name} — {offers} предложений от {suppliers} поставщиков"
|
||||
}
|
||||
}
|
||||
}
|
||||
40
i18n/locales/ru/catalogSupplier.json
Normal file
40
i18n/locales/ru/catalogSupplier.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"catalogSupplier": {
|
||||
"states": {
|
||||
"loading": "Загружаем информацию о поставщике..."
|
||||
},
|
||||
"not_found": {
|
||||
"title": "Поставщик не найден",
|
||||
"subtitle": "Возможно, страница была удалена или указан неверный адрес"
|
||||
},
|
||||
"actions": {
|
||||
"back_to_catalog": "Вернуться в каталог"
|
||||
},
|
||||
"sections": {
|
||||
"offers": {
|
||||
"title": "Активные предложения"
|
||||
},
|
||||
"products": {
|
||||
"title": "Товары"
|
||||
},
|
||||
"locations": {
|
||||
"title": "География поставок"
|
||||
}
|
||||
},
|
||||
"badges": {
|
||||
"verified": "Проверен",
|
||||
"offers": "{count} предложений"
|
||||
},
|
||||
"labels": {
|
||||
"on_time": "{percent}% вовремя",
|
||||
"on_time_default": "89% вовремя",
|
||||
"trusted_partner": "Надежный партнер"
|
||||
},
|
||||
"meta": {
|
||||
"title": "Поставщик | Optovia",
|
||||
"title_with_name": "{name} — Поставщик | Optovia",
|
||||
"description": "Информация о поставщике",
|
||||
"description_with_name": "Информация о поставщике {name}"
|
||||
}
|
||||
}
|
||||
}
|
||||
17
i18n/locales/ru/catalogSuppliersSection.json
Normal file
17
i18n/locales/ru/catalogSuppliersSection.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"catalogSuppliersSection": {
|
||||
"header": {
|
||||
"title": "Проверенные компании"
|
||||
},
|
||||
"actions": {
|
||||
"view_all": "Смотреть все"
|
||||
},
|
||||
"filters": {
|
||||
"all": "Все",
|
||||
"verified": "Проверенные"
|
||||
},
|
||||
"empty": {
|
||||
"no_suppliers": "Нет зарегистрированных компаний"
|
||||
}
|
||||
}
|
||||
}
|
||||
40
i18n/locales/ru/clientOfferForm.json
Normal file
40
i18n/locales/ru/clientOfferForm.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"clientOfferForm": {
|
||||
"header": {
|
||||
"title": "Характеристики товара"
|
||||
},
|
||||
"actions": {
|
||||
"back": "Назад к выбору",
|
||||
"chooseAnother": "Выбрать другой товар",
|
||||
"save": "Сохранить",
|
||||
"saving": "Сохранение..."
|
||||
},
|
||||
"error": {
|
||||
"title": "Ошибка",
|
||||
"retry": "Повторить",
|
||||
"load": "Не удалось загрузить данные",
|
||||
"save": "Не удалось сохранить данные"
|
||||
},
|
||||
"states": {
|
||||
"loading": "Загружаем данные..."
|
||||
},
|
||||
"noSchema": {
|
||||
"title": "Схема не настроена",
|
||||
"description": "Для товара \"{name}\" не настроена схема характеристик в TerminusDB. Обратитесь к администратору."
|
||||
},
|
||||
"errors": {
|
||||
"productNotFound": "Продукт с UUID {uuid} не найден",
|
||||
"schemaNotFound": "Схема \"{schema}\" не найдена в TerminusDB"
|
||||
},
|
||||
"labels": {
|
||||
"location": "Локация",
|
||||
"location_empty": "Локации отсутствуют"
|
||||
},
|
||||
"success": {
|
||||
"saved": "Данные сохранены!\\n\\n{payload}"
|
||||
},
|
||||
"debug": {
|
||||
"schema_missing": "не указан"
|
||||
}
|
||||
}
|
||||
}
|
||||
39
i18n/locales/ru/clientOffersList.json
Normal file
39
i18n/locales/ru/clientOffersList.json
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"clientOffersList": {
|
||||
"header": {
|
||||
"title": "Мои предложения"
|
||||
},
|
||||
"actions": {
|
||||
"add": "Добавить",
|
||||
"addOffer": "Добавить предложение"
|
||||
},
|
||||
"error": {
|
||||
"title": "Ошибка",
|
||||
"retry": "Попробовать снова",
|
||||
"load": "Не удалось загрузить предложения"
|
||||
},
|
||||
"states": {
|
||||
"loading": "Загружаем предложения..."
|
||||
},
|
||||
"labels": {
|
||||
"untitled": "Без названия",
|
||||
"quantity": "Количество",
|
||||
"price": "Цена",
|
||||
"location": "Локация",
|
||||
"valid_until": "Действует до",
|
||||
"not_specified": "Не указана",
|
||||
"invalid_date": "Невалидная дата"
|
||||
},
|
||||
"status": {
|
||||
"active": "Активно",
|
||||
"draft": "Черновик",
|
||||
"expired": "Истекло",
|
||||
"sold": "Продано",
|
||||
"unknown": "Неизвестно"
|
||||
},
|
||||
"empty": {
|
||||
"title": "Нет предложений",
|
||||
"subtitle": "Создайте своё первое предложение"
|
||||
}
|
||||
}
|
||||
}
|
||||
20
i18n/locales/ru/clientProfile.json
Normal file
20
i18n/locales/ru/clientProfile.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"clientProfile": {
|
||||
"actions": {
|
||||
"debugTokens": "Отладка токенов"
|
||||
},
|
||||
"debugTokens": {
|
||||
"title": "Отладка токенов",
|
||||
"idToken": "ID Token",
|
||||
"claims": "Claims",
|
||||
"error": "Не удалось получить токены"
|
||||
},
|
||||
"states": {
|
||||
"loading": "Загружаем профиль..."
|
||||
},
|
||||
"error": {
|
||||
"load": "Ошибка загрузки профиля",
|
||||
"save": "Ошибка сохранения профиля"
|
||||
}
|
||||
}
|
||||
}
|
||||
7
i18n/locales/ru/clientRedirect.json
Normal file
7
i18n/locales/ru/clientRedirect.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"clientRedirect": {
|
||||
"status": {
|
||||
"redirecting": "Перенаправляем на главную..."
|
||||
}
|
||||
}
|
||||
}
|
||||
82
i18n/locales/ru/clientTeam.json
Normal file
82
i18n/locales/ru/clientTeam.json
Normal file
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"clientTeam": {
|
||||
"header": {
|
||||
"title": "Ваша компания",
|
||||
"createTitle": "Создание компании"
|
||||
},
|
||||
"actions": {
|
||||
"switch": "Сменить компанию",
|
||||
"add": "Добавить",
|
||||
"addCompany": "Добавить компанию",
|
||||
"inviteWip": "Функция приглашения участника в разработке"
|
||||
},
|
||||
"error": {
|
||||
"title": "Ошибка",
|
||||
"retry": "Повторить",
|
||||
"load": "Не удалось загрузить компании"
|
||||
},
|
||||
"loading": {
|
||||
"message": "Загружаем компании..."
|
||||
},
|
||||
"empty": {
|
||||
"title": "У вас нет компании",
|
||||
"subtitle": "Создайте компанию для работы на платформе",
|
||||
"cta": "Стать участником"
|
||||
},
|
||||
"kyc": {
|
||||
"notice": "Для работы на платформе необходимо пройти верификацию компании (KYC)",
|
||||
"button": "Пройти верификацию →",
|
||||
"pending": {
|
||||
"title": "Заявка на проверке",
|
||||
"description": "Ваша заявка на верификацию находится на рассмотрении. Мы уведомим вас о результате."
|
||||
},
|
||||
"approved": {
|
||||
"title": "Верификация пройдена",
|
||||
"description": "Ваша компания создаётся. Обновите страницу через несколько секунд."
|
||||
},
|
||||
"empty": {
|
||||
"title": "Верификация компании",
|
||||
"description": "Для работы на платформе необходимо пройти верификацию компании (KYC)",
|
||||
"cta": "Пройти верификацию"
|
||||
}
|
||||
},
|
||||
"members": {
|
||||
"title": "Участники",
|
||||
"invited": "Приглашен"
|
||||
},
|
||||
"inviteCard": {
|
||||
"title": "Пригласить"
|
||||
},
|
||||
"invitations": {
|
||||
"pending": "Ожидает ответа",
|
||||
"sent": "Приглашение отправлено"
|
||||
},
|
||||
"membersLocked": {
|
||||
"title": "🔒 Участники",
|
||||
"subtitle": "Управление участниками будет доступно после прохождения верификации"
|
||||
},
|
||||
"kycStatus": {
|
||||
"approved": "Верифицирована",
|
||||
"inReview": "На проверке",
|
||||
"pending": "Требуется верификация",
|
||||
"rejected": "Верификация отклонена",
|
||||
"default": "Требуется верификация"
|
||||
},
|
||||
"roles": {
|
||||
"owner": "Владелец",
|
||||
"admin": "Администратор",
|
||||
"manager": "Менеджер",
|
||||
"member": "Участник"
|
||||
},
|
||||
"invite": {
|
||||
"title": "Пригласить участника",
|
||||
"email": "Email",
|
||||
"emailPlaceholder": "Введите email",
|
||||
"role": "Роль",
|
||||
"submit": "Отправить приглашение",
|
||||
"cancel": "Отмена",
|
||||
"error": "Не удалось отправить приглашение",
|
||||
"success": "Приглашение отправлено"
|
||||
}
|
||||
}
|
||||
}
|
||||
11
i18n/locales/ru/clientTeamSwitch.json
Normal file
11
i18n/locales/ru/clientTeamSwitch.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"clientTeamSwitch": {
|
||||
"loading": {
|
||||
"message": "Загружаем команды..."
|
||||
},
|
||||
"error": {
|
||||
"load": "Не удалось загрузить команды",
|
||||
"switch": "Не удалось переключить команду"
|
||||
}
|
||||
}
|
||||
}
|
||||
23
i18n/locales/ru/common.json
Normal file
23
i18n/locales/ru/common.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"common": {
|
||||
"loading": "Загрузка...",
|
||||
"save": "Сохранить",
|
||||
"cancel": "Отмена",
|
||||
"refresh": "Обновить",
|
||||
"error": "Ошибка",
|
||||
"success": "Успех",
|
||||
"retry": "Повторить",
|
||||
"actions": {
|
||||
"load_more": "Показать еще"
|
||||
},
|
||||
"pagination": {
|
||||
"showing": "Показано {shown} из {total}"
|
||||
},
|
||||
"selectLocation": "Выберите локацию",
|
||||
"theme_dark": "Темная тема",
|
||||
"theme_light": "Светлая тема",
|
||||
"values": {
|
||||
"not_available": "Нет данных"
|
||||
}
|
||||
}
|
||||
}
|
||||
8
i18n/locales/ru/cta.json
Normal file
8
i18n/locales/ru/cta.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"cta": {
|
||||
"title": "Готовы начать торговать?",
|
||||
"description": "Присоединяйтесь к тысячам компаний, которые уже используют Optovia для своих сделок",
|
||||
"start_selling": "Начать продавать",
|
||||
"start_buying": "Начать покупать"
|
||||
}
|
||||
}
|
||||
34
i18n/locales/ru/dashboard.json
Normal file
34
i18n/locales/ru/dashboard.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"dashboard": {
|
||||
"title": "Личный кабинет",
|
||||
"home": "Главная",
|
||||
"profile": "Профиль",
|
||||
"team": "Команда",
|
||||
"orders": "Мои заказы",
|
||||
"switch_company": "Сменить компанию",
|
||||
"locations_description": "Склады и точки доставки",
|
||||
"favorites": "Избранное",
|
||||
"products": "Мои товары",
|
||||
"analytics": "Аналитика",
|
||||
"welcome": "Добро пожаловать в ваш личный кабинет Optovia",
|
||||
"profile_info": "Информация о профиле",
|
||||
"activity": "Активность",
|
||||
"quick_actions": "Быстрые действия",
|
||||
"new_calculation": "Новый расчет",
|
||||
"notifications": "Уведомления",
|
||||
"visits_today": "Посещений сегодня",
|
||||
"product_views": "Просмотров товаров",
|
||||
"last_login": "Последний вход",
|
||||
"find_products": "Найти товары",
|
||||
"search_marketplace": "Поиск на маркетплейсе",
|
||||
"materials": "Материалы",
|
||||
"catalog": "Каталог товаров",
|
||||
"profile_settings": "Настройки аккаунта",
|
||||
"pass_kyc": "Пройти KYC верификацию",
|
||||
"pass_kyc_desc": "Подтвердите личность для доступа ко всем функциям",
|
||||
"add_team_member": "Добавить участника команды",
|
||||
"add_team_member_desc": "Пригласите коллег для совместной работы",
|
||||
"complete_profile": "Заполнить профиль",
|
||||
"complete_profile_desc": "Добавьте информацию о компании и контакты"
|
||||
}
|
||||
}
|
||||
11
i18n/locales/ru/footer.json
Normal file
11
i18n/locales/ru/footer.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"footer": {
|
||||
"buyers": "Покупателям",
|
||||
"suppliers": "Поставщикам",
|
||||
"services": "Сервисным компаниям",
|
||||
"rights": "Все права защищены",
|
||||
"privacy": "Политика конфиденциальности",
|
||||
"terms": "Пользовательское соглашение",
|
||||
"support": "Поддержка"
|
||||
}
|
||||
}
|
||||
36
i18n/locales/ru/ganttTimeline.json
Normal file
36
i18n/locales/ru/ganttTimeline.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"ganttTimeline": {
|
||||
"states": {
|
||||
"loading": "Загрузка timeline..."
|
||||
},
|
||||
"legend": {
|
||||
"title": "Этапы доставки",
|
||||
"auto": "Автоперевозка",
|
||||
"sea": "Морская перевозка",
|
||||
"rail": "Ж/д перевозка",
|
||||
"services": "Услуги"
|
||||
},
|
||||
"modal": {
|
||||
"title": "Детали рейса",
|
||||
"company": {
|
||||
"title": "Компания",
|
||||
"tax_id": "ИНН:"
|
||||
},
|
||||
"dates": {
|
||||
"title": "Даты",
|
||||
"planned_loading": "План. погрузка:",
|
||||
"actual_loading": "Факт. погрузка:",
|
||||
"planned_unloading": "План. выгрузка:",
|
||||
"actual_unloading": "Факт. выгрузка:"
|
||||
},
|
||||
"weight": {
|
||||
"title": "Вес",
|
||||
"planned": "Плановый:",
|
||||
"at_loading": "При погрузке:",
|
||||
"at_unloading": "При выгрузке:",
|
||||
"unit": "т"
|
||||
},
|
||||
"not_specified": "Не указано"
|
||||
}
|
||||
}
|
||||
}
|
||||
27
i18n/locales/ru/goods.json
Normal file
27
i18n/locales/ru/goods.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"goods": {
|
||||
"title": "Товары",
|
||||
"back": "Назад к поиску",
|
||||
"filter_placeholder": "Поиск материалов",
|
||||
"all_categories": "Все категории",
|
||||
"metals": "Металлы",
|
||||
"energy": "Энергоресурсы",
|
||||
"chemicals": "Химия",
|
||||
"per_ton": "за тонну",
|
||||
"filters": "Фильтры",
|
||||
"search": "Поиск",
|
||||
"category": "Категория",
|
||||
"price_range": "Ценовой диапазон",
|
||||
"grid_view": "Плитка",
|
||||
"list_view": "Список",
|
||||
"description": "Материалы и товары доступные на платформе",
|
||||
"error": {
|
||||
"title": "Ошибка загрузки",
|
||||
"retry": "Попробовать снова"
|
||||
},
|
||||
"empty": {
|
||||
"title": "Нет товаров",
|
||||
"description": "Товары пока не добавлены на платформу"
|
||||
}
|
||||
}
|
||||
}
|
||||
17
i18n/locales/ru/howto.json
Normal file
17
i18n/locales/ru/howto.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"howto": {
|
||||
"title": "Как это работает",
|
||||
"step1": {
|
||||
"title": "Найдите материалы",
|
||||
"description": "Выберите нужное сырье, укажите количество и место доставки"
|
||||
},
|
||||
"step2": {
|
||||
"title": "Сравните предложения",
|
||||
"description": "Получите предложения от проверенных поставщиков с различными вариантами логистики"
|
||||
},
|
||||
"step3": {
|
||||
"title": "Выберите сервисы",
|
||||
"description": "Добавьте финансирование, страхование и контроль качества к вашей сделке"
|
||||
}
|
||||
}
|
||||
}
|
||||
8
i18n/locales/ru/kyc.json
Normal file
8
i18n/locales/ru/kyc.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"kyc": {
|
||||
"verification_status": "Статус верификации",
|
||||
"team_verification_description": "Пройдите верификацию команды для создания заказов",
|
||||
"start_verification": "Начать верификацию",
|
||||
"check_status_in_odoo": "Статус проверяется администратором"
|
||||
}
|
||||
}
|
||||
63
i18n/locales/ru/kycOverview.json
Normal file
63
i18n/locales/ru/kycOverview.json
Normal file
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"kycOverview": {
|
||||
"header": {
|
||||
"title": "Верификация KYC"
|
||||
},
|
||||
"errors": {
|
||||
"title": "Ошибка",
|
||||
"retry": "Повторить",
|
||||
"not_authenticated": "Пользователь не аутентифицирован",
|
||||
"load_failed": "Ошибка загрузки данных KYC"
|
||||
},
|
||||
"states": {
|
||||
"loading": "Загружаем статус верификации..."
|
||||
},
|
||||
"labels": {
|
||||
"approved_at": "Одобрено {date}"
|
||||
},
|
||||
"actions": {
|
||||
"retry": "Повторить верификацию",
|
||||
"back_to_team": "Вернуться к команде"
|
||||
},
|
||||
"choose_country": {
|
||||
"title": "Выберите страну для верификации",
|
||||
"subtitle": "Пройдите процедуру верификации компании для доступа ко всем функциям платформы."
|
||||
},
|
||||
"countries": {
|
||||
"russia": {
|
||||
"title": "Россия",
|
||||
"description": "Верификация через ИНН с автозаполнением данных из базы ФНС",
|
||||
"badge": "Доступно"
|
||||
},
|
||||
"kazakhstan": {
|
||||
"title": "Казахстан",
|
||||
"description": "Верификация через БИН (скоро)",
|
||||
"badge": "Скоро"
|
||||
}
|
||||
},
|
||||
"info": {
|
||||
"title": "О процедуре верификации",
|
||||
"point1": "Проверка займет 1-2 рабочих дня",
|
||||
"point2": "Данные заполняются автоматически через официальные источники",
|
||||
"point3": "После верификации доступна вся платформа"
|
||||
},
|
||||
"status": {
|
||||
"title": {
|
||||
"pending": "Заявка на рассмотрении",
|
||||
"in_review": "Документы проверяются",
|
||||
"approved": "Верификация пройдена",
|
||||
"rejected": "Верификация отклонена",
|
||||
"expired": "Срок заявки истек",
|
||||
"unknown": "Неизвестный статус"
|
||||
},
|
||||
"description": {
|
||||
"pending": "Ваша заявка в обработке. Ожидайте результат в течение 1-2 рабочих дней.",
|
||||
"in_review": "Специалисты проверяют документы и данные компании.",
|
||||
"approved": "Поздравляем! Компания успешно прошла верификацию.",
|
||||
"rejected": "Верификация отклонена. Проверьте данные и попробуйте снова.",
|
||||
"expired": "Срок действия заявки истек. Подайте новую заявку.",
|
||||
"unknown": "Неизвестный статус заявки"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
23
i18n/locales/ru/kycRussia.json
Normal file
23
i18n/locales/ru/kycRussia.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"kycRussia": {
|
||||
"header": {
|
||||
"title": "Верификация для России",
|
||||
"subtitle": "Заполните данные вашей организации. Все поля будут заполнены автоматически через поиск по ИНН."
|
||||
},
|
||||
"states": {
|
||||
"submitting": "Отправляем заявку на верификацию..."
|
||||
},
|
||||
"errors": {
|
||||
"title": "Ошибка отправки",
|
||||
"not_authenticated": "Пользователь не аутентифицирован",
|
||||
"no_team": "Сначала создайте компанию",
|
||||
"create_failed": "Не удалось создать заявку",
|
||||
"submit_failed": "Произошла ошибка при отправке заявки"
|
||||
},
|
||||
"success": {
|
||||
"title": "Заявка успешно отправлена",
|
||||
"description": "Ваша заявка на верификацию принята. Результат будет готов в течение 1-2 рабочих дней.",
|
||||
"cta": "Посмотреть статус заявки →"
|
||||
}
|
||||
}
|
||||
}
|
||||
14
i18n/locales/ru/locations.json
Normal file
14
i18n/locales/ru/locations.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"locations": {
|
||||
"title": "Выберите место доставки",
|
||||
"back": "Назад к поиску",
|
||||
"list_view": "Список",
|
||||
"map_view": "Карта",
|
||||
"filters": "Фильтры",
|
||||
"search": "Поиск города",
|
||||
"search_placeholder": "Название города",
|
||||
"regions": "Федеральные округа",
|
||||
"all_regions": "Все регионы",
|
||||
"all_countries": "Все страны"
|
||||
}
|
||||
}
|
||||
8
i18n/locales/ru/nav.json
Normal file
8
i18n/locales/ru/nav.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"nav": {
|
||||
"search": "Поиск",
|
||||
"offers": "Предложения",
|
||||
"suppliers": "Поставщики",
|
||||
"hubs": "Хабы"
|
||||
}
|
||||
}
|
||||
22
i18n/locales/ru/offersNew.json
Normal file
22
i18n/locales/ru/offersNew.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"offersNew": {
|
||||
"header": {
|
||||
"title": "Выберите продукт"
|
||||
},
|
||||
"actions": {
|
||||
"back": "Назад"
|
||||
},
|
||||
"errors": {
|
||||
"title": "Ошибка",
|
||||
"retry": "Попробовать снова",
|
||||
"load_failed": "Не удалось загрузить продукты"
|
||||
},
|
||||
"states": {
|
||||
"loading": "Загружаем продукты..."
|
||||
},
|
||||
"empty": {
|
||||
"title": "Нет доступных продуктов",
|
||||
"description": "Обратитесь к администратору для добавления продуктов"
|
||||
}
|
||||
}
|
||||
}
|
||||
31
i18n/locales/ru/orderCalendar.json
Normal file
31
i18n/locales/ru/orderCalendar.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"orderCalendar": {
|
||||
"header": {
|
||||
"title": "Календарь рейсов"
|
||||
},
|
||||
"filters": {
|
||||
"loading": "Погрузки",
|
||||
"unloading": "Выгрузки"
|
||||
},
|
||||
"labels": {
|
||||
"loading": "Погрузка",
|
||||
"unloading": "Выгрузка",
|
||||
"weight_unit": "т",
|
||||
"service": "Услуга",
|
||||
"service_stage": "Сервисный этап"
|
||||
},
|
||||
"months": "Авг 2024|Сен 2024|Окт 2024",
|
||||
"stats": {
|
||||
"title": "Статистика по периодам:",
|
||||
"trips": "Рейсы:",
|
||||
"companies": "Компании:",
|
||||
"weight": "Вес:"
|
||||
},
|
||||
"transport": {
|
||||
"auto": "Автоперевозка",
|
||||
"rail": "Ж/д перевозка",
|
||||
"sea": "Морская перевозка",
|
||||
"air": "Авиаперевозка"
|
||||
}
|
||||
}
|
||||
}
|
||||
12
i18n/locales/ru/orderMap.json
Normal file
12
i18n/locales/ru/orderMap.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"orderMap": {
|
||||
"header": {
|
||||
"title": "Маршрут логистики"
|
||||
},
|
||||
"stats": {
|
||||
"distance_value": "{km} км",
|
||||
"distance_label": "примерное расстояние",
|
||||
"countries_label": "стран в маршруте"
|
||||
}
|
||||
}
|
||||
}
|
||||
7
i18n/locales/ru/orders.json
Normal file
7
i18n/locales/ru/orders.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"orders": {
|
||||
"no_orders": "Нет заказов",
|
||||
"no_orders_desc": "Начните с создания нового расчета",
|
||||
"create_new": "Создать новый расчет"
|
||||
}
|
||||
}
|
||||
51
i18n/locales/ru/ordersDetail.json
Normal file
51
i18n/locales/ru/ordersDetail.json
Normal file
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"ordersDetail": {
|
||||
"header": {
|
||||
"title": "Заказ #{id}"
|
||||
},
|
||||
"errors": {
|
||||
"title": "Ошибка",
|
||||
"retry": "Попробовать снова",
|
||||
"load_failed": "Не удалось загрузить заказ"
|
||||
},
|
||||
"states": {
|
||||
"loading": "Загружаем детали заказа..."
|
||||
},
|
||||
"labels": {
|
||||
"unit_tons": "тонн",
|
||||
"product_unknown": "Товар",
|
||||
"delivery_days": "дней доставки",
|
||||
"weight_unit": "т",
|
||||
"trips": "рейсов",
|
||||
"company_unknown": "Компания не указана",
|
||||
"price_zero": "0 ₽",
|
||||
"dates_undefined": "Даты не определены"
|
||||
},
|
||||
"status": {
|
||||
"pending": "Ожидает",
|
||||
"processing": "В обработке",
|
||||
"in_transit": "В пути",
|
||||
"delivered": "Доставлен",
|
||||
"cancelled": "Отменен",
|
||||
"unknown": "Неизвестно"
|
||||
},
|
||||
"sections": {
|
||||
"stages": {
|
||||
"title": "Этапы маршрута",
|
||||
"companies": {
|
||||
"title": "Компании",
|
||||
"empty": "Компании не назначены"
|
||||
},
|
||||
"route_title": "Маршрут этапа",
|
||||
"empty": "Этапы маршрута не определены"
|
||||
},
|
||||
"map": {
|
||||
"title": "Общая карта маршрута"
|
||||
},
|
||||
"timeline": {
|
||||
"title": "Timeline доставки",
|
||||
"empty": "Нет данных для timeline"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
29
i18n/locales/ru/ordersList.json
Normal file
29
i18n/locales/ru/ordersList.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"ordersList": {
|
||||
"actions": {
|
||||
"new_calc": "Новый расчет"
|
||||
},
|
||||
"errors": {
|
||||
"retry": "Попробовать снова"
|
||||
},
|
||||
"states": {
|
||||
"loading": "Загружаем заказы..."
|
||||
},
|
||||
"filters": {
|
||||
"all": "Все",
|
||||
"pending": "Ожидают",
|
||||
"processing": "В обработке",
|
||||
"in_transit": "В пути",
|
||||
"delivered": "Доставлены"
|
||||
},
|
||||
"card": {
|
||||
"order_label": "Заказ",
|
||||
"route": "Маршрут",
|
||||
"product": "Товар",
|
||||
"product_loading": "Загрузка...",
|
||||
"unit_tons": "тонн",
|
||||
"status": "Статус",
|
||||
"stages_completed": "Этапов завершено: {done} / {total}"
|
||||
}
|
||||
}
|
||||
}
|
||||
30
i18n/locales/ru/profile.json
Normal file
30
i18n/locales/ru/profile.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"profile": {
|
||||
"description": "Управление данными профиля и настройками аккаунта",
|
||||
"personal_info": "Личная информация",
|
||||
"account_settings": "Настройки аккаунта",
|
||||
"username": "Имя пользователя",
|
||||
"first_name": "Имя",
|
||||
"first_name_placeholder": "Введите имя",
|
||||
"last_name": "Фамилия",
|
||||
"last_name_placeholder": "Введите фамилию",
|
||||
"phone": "Телефон",
|
||||
"phone_placeholder": "+7 XXX XXX XX XX",
|
||||
"avatar": "Аватар",
|
||||
"regenerate_avatar": "Сменить аватар",
|
||||
"save": "Сохранить",
|
||||
"saving": "Сохранение",
|
||||
"role": "Роль",
|
||||
"language": "Язык интерфейса",
|
||||
"notifications_settings": "Уведомления",
|
||||
"email_notifications": "Email уведомления о новых предложениях",
|
||||
"order_notifications": "Уведомления об обновлении заказов",
|
||||
"security": "Безопасность",
|
||||
"two_factor": "Двухфакторная аутентификация",
|
||||
"not_configured": "Не настроена",
|
||||
"last_login": "Последний вход",
|
||||
"status": "Статус",
|
||||
"active": "Активен",
|
||||
"not_specified": "Не указан"
|
||||
}
|
||||
}
|
||||
46
i18n/locales/ru/profileAddresses.json
Normal file
46
i18n/locales/ru/profileAddresses.json
Normal file
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"profileAddresses": {
|
||||
"header": {
|
||||
"title": "Мои адреса"
|
||||
},
|
||||
"actions": {
|
||||
"add": "Добавить адрес",
|
||||
"delete": "Удалить",
|
||||
"confirm_delete": "Удалить этот адрес?"
|
||||
},
|
||||
"form": {
|
||||
"title": "Новый адрес",
|
||||
"mapLabel": "Выберите точку на карте",
|
||||
"name": {
|
||||
"label": "Название",
|
||||
"placeholder": "Например: Офис, Склад, Производство"
|
||||
},
|
||||
"address": {
|
||||
"label": "Адрес",
|
||||
"placeholder": "Полный адрес"
|
||||
},
|
||||
"latitude": {
|
||||
"label": "Широта",
|
||||
"placeholder": "55.7558"
|
||||
},
|
||||
"longitude": {
|
||||
"label": "Долгота",
|
||||
"placeholder": "37.6173"
|
||||
},
|
||||
"save": "Сохранить",
|
||||
"saving": "Сохранение..."
|
||||
},
|
||||
"states": {
|
||||
"loading": "Загружаем адреса..."
|
||||
},
|
||||
"labels": {
|
||||
"default": "По умолчанию"
|
||||
},
|
||||
"empty": {
|
||||
"title": "Нет адресов",
|
||||
"description": "У вас пока нет сохранённых адресов",
|
||||
"cta": "Добавить первый адрес"
|
||||
},
|
||||
"status": {}
|
||||
}
|
||||
}
|
||||
34
i18n/locales/ru/roles.json
Normal file
34
i18n/locales/ru/roles.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"roles": {
|
||||
"title": "Для кого наша платформа",
|
||||
"producers": {
|
||||
"title": "Производители",
|
||||
"description": "Продавайте сырье напрямую покупателям через нашу платформу",
|
||||
"benefit1": "Доска объявлений для продажи",
|
||||
"benefit2": "Участие в аукционных тендерах",
|
||||
"benefit3": "Доступ к финансированию",
|
||||
"benefit4": "Логистические решения",
|
||||
"cta": "Начать продавать"
|
||||
},
|
||||
"buyers": {
|
||||
"title": "Покупатели",
|
||||
"description": "Находите и покупайте сырье с гарантией качества и доставки",
|
||||
"benefit1": "Поиск и сравнение предложений",
|
||||
"benefit2": "Кредитование покупок",
|
||||
"benefit3": "Страхование сделок",
|
||||
"benefit4": "Контроль качества товаров",
|
||||
"cta": "Начать покупать"
|
||||
},
|
||||
"services": {
|
||||
"title": "Сервисные компании",
|
||||
"description": "Предоставляйте услуги участникам маркетплейса и расширяйте клиентскую базу",
|
||||
"benefit1": "Логистические компании",
|
||||
"benefit2": "Финансовые организации",
|
||||
"benefit3": "Лаборатории контроля качества",
|
||||
"benefit4": "Страховые компании",
|
||||
"cta": "Стать партнером"
|
||||
},
|
||||
"buyer": "Покупатель",
|
||||
"seller": "Продавец"
|
||||
}
|
||||
}
|
||||
15
i18n/locales/ru/routeMap.json
Normal file
15
i18n/locales/ru/routeMap.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"routeMap": {
|
||||
"states": {
|
||||
"loading": "Загрузка карты..."
|
||||
},
|
||||
"popup": {
|
||||
"companies": "Компании:"
|
||||
},
|
||||
"points": {
|
||||
"source": "Точка отправления",
|
||||
"destination": "Точка назначения",
|
||||
"service": "Точка услуги"
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user