garázs fejlesztés

This commit is contained in:
Roo
2026-07-20 11:17:52 +00:00
parent 2e0abc62a7
commit 4594de6c11
80 changed files with 9135 additions and 8702 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"id":"dev","timestamp":1783475444387}
{"id":"dev","timestamp":1783500293953}

View File

@@ -1 +1 @@
{"id":"dev","timestamp":1783475444387,"prerendered":[]}
{"id":"dev","timestamp":1783500293953,"prerendered":[]}

View File

@@ -1,5 +1,5 @@
{
"date": "2026-07-08T01:50:52.058Z",
"date": "2026-07-08T11:00:15.496Z",
"preset": "nitro-dev",
"framework": {
"name": "nuxt",
@@ -11,7 +11,7 @@
"dev": {
"pid": 19,
"workerAddress": {
"socketPath": "\u0000nitro-worker-19-1-1-173.sock"
"socketPath": "\u0000nitro-worker-19-3-3-6895.sock"
}
}
}

View File

@@ -1,8 +1,8 @@
/// <reference types="@nuxtjs/tailwindcss" />
/// <reference types="@nuxt/devtools" />
/// <reference types="@nuxt/telemetry" />
/// <reference types="@pinia/nuxt" />
/// <reference types="@nuxtjs/i18n" />
/// <reference types="@pinia/nuxt" />
/// <reference types="@nuxt/telemetry" />
/// <reference types="@nuxt/devtools" />
/// <reference path="types/nitro-layouts.d.ts" />
/// <reference path="types/builder-env.d.ts" />
/// <reference types="nuxt" />

View File

@@ -1,4 +1,4 @@
// generated by the @nuxtjs/tailwindcss <https://github.com/nuxt-modules/tailwindcss> module at 7/8/2026, 1:50:44 AM
// generated by the @nuxtjs/tailwindcss <https://github.com/nuxt-modules/tailwindcss> module at 7/8/2026, 11:05:19 AM
import "@nuxtjs/tailwindcss/config-ctx"
import configMerger from "@nuxtjs/tailwindcss/merger";

View File

@@ -1,35 +0,0 @@
{
"title": "Badges",
"subtitle": "Badge Management — CRUD",
"loading": "Loading badges...",
"error": "Failed to load badges.",
"retry": "Retry",
"create": "New Badge",
"no_items": "No badges yet.",
"id": "ID",
"name": "Name",
"description": "Description",
"icon": "Icon",
"actions": "Actions",
"edit": "Edit",
"delete": "Delete",
"cancel": "Cancel",
"save": "Save",
"create_title": "Create Badge",
"edit_title": "Edit Badge",
"name_placeholder": "Badge name",
"desc_placeholder": "Badge description",
"icon_placeholder": "Icon URL",
"icon_hint": "Optional. The icon URL for the badge.",
"icon_preview": "Icon preview",
"create_btn": "Create",
"delete_title": "Delete Badge",
"delete_confirm": "Are you sure you want to delete this badge?",
"delete_btn": "Delete",
"created": "Badge created!",
"updated": "Badge updated!",
"deleted": "Badge deleted!",
"save_error": "Failed to save badge.",
"delete_error": "Failed to delete badge.",
"unknown_error": "Unknown error"
}

View File

@@ -1,38 +0,0 @@
{
"title": "Competitions",
"subtitle": "Seasonal competition management",
"loading": "Loading competitions...",
"error": "Failed to load competitions.",
"retry": "Retry",
"create": "New Competition",
"no_items": "No competitions created yet.",
"create_first": "Create First Competition",
"season_filter": "Season Filter:",
"all_seasons": "All Seasons",
"active_badge": "(Active)",
"status_active": "Active",
"status_draft": "Draft",
"status_completed": "Completed",
"status_cancelled": "Cancelled",
"view_rules": "View Rules",
"edit": "Edit",
"cancel": "Cancel",
"save": "Save",
"create_title": "Create Competition",
"edit_title": "Edit Competition",
"name": "Name",
"name_placeholder": "e.g. Q1 Service Submission Contest",
"description": "Description",
"desc_placeholder": "Competition description...",
"season": "Season",
"select_season": "Select a season",
"start_date": "Start Date",
"end_date": "End Date",
"status": "Status",
"rules": "Rules (JSON)",
"rules_placeholder": "type: service_submission, points_multiplier: 1.5",
"invalid_json": "Invalid JSON format!",
"create_btn": "Create",
"season_id_label": "Season ID:",
"save_error": "Failed to save competition."
}

View File

@@ -1,26 +0,0 @@
{
"title": "System Config",
"subtitle": "Gamification master configuration editor",
"loading": "Loading configuration...",
"error": "Failed to load configuration.",
"last_save": "Last saved:",
"saving": "Saving...",
"save": "Save Configuration",
"section_xp": "XP Logic",
"section_conversion": "Conversion Logic",
"section_penalty": "Penalty Logic",
"section_rewards": "Level Rewards",
"calculator": "Impact Calculator",
"calculator_desc": "Adjust parameters to see estimated impact",
"estimated_results": "Estimated Results",
"daily_xp": "Daily XP",
"xp_for_level": "XP Needed for Level Up",
"social_to_credit": "Social → Credit",
"days_to_level": "Days to Level Up",
"raw_json": "Raw JSON Editor",
"apply_json": "Apply JSON",
"updated": "Configuration updated!",
"save_error": "Failed to save configuration.",
"json_applied": "JSON applied to form fields!",
"invalid_json": "Invalid JSON: "
}

View File

@@ -1,23 +1,25 @@
{
"title": "Gamification HQ",
"subtitle": "Gamification system overview dashboard",
"loading": "Loading dashboard...",
"error": "Failed to load dashboard data.",
"total_users": "Total Users",
"active_season": "Active Season",
"pending_contributions": "Pending Contributions",
"xp_earned_today": "XP Earned Today",
"none": "None",
"quick_actions": "Quick Actions",
"manage_point_rules": "Manage Point Rules",
"manage_badges": "Manage Badges",
"manage_seasons": "Manage Seasons",
"recent_ledger": "Recent Ledger Entries",
"no_ledger": "No ledger entries yet.",
"top_5": "Top 5 Leaderboard",
"full_leaderboard": "Full Leaderboard",
"no_leaderboard": "No leaderboard data yet.",
"level": "Level",
"xp": "XP",
"points": "points"
"dashboard": {
"title": "Gamification HQ",
"subtitle": "Gamification system overview dashboard",
"loading": "Loading dashboard...",
"error": "Failed to load dashboard data.",
"total_users": "Total Users",
"active_season": "Active Season",
"pending_contributions": "Pending Contributions",
"xp_earned_today": "XP Earned Today",
"none": "None",
"quick_actions": "Quick Actions",
"manage_point_rules": "Manage Point Rules",
"manage_badges": "Manage Badges",
"manage_seasons": "Manage Seasons",
"recent_ledger": "Recent Ledger Entries",
"no_ledger": "No ledger entries yet.",
"top_5": "Top 5 Leaderboard",
"full_leaderboard": "Full Leaderboard ",
"no_leaderboard": "No leaderboard data yet.",
"level": "Level",
"xp": "XP",
"points": "points"
}
}

View File

@@ -0,0 +1,304 @@
{
"gamification": {
"badges": {
"title": "Badges",
"subtitle": "Badge Management — CRUD",
"loading": "Loading badges...",
"error": "Failed to load badges.",
"retry": "Retry",
"create": "New Badge",
"no_items": "No badges yet.",
"id": "ID",
"name": "Name",
"description": "Description",
"icon": "Icon",
"actions": "Actions",
"edit": "Edit",
"delete": "Delete",
"cancel": "Cancel",
"save": "Save",
"create_title": "Create Badge",
"edit_title": "Edit Badge",
"name_placeholder": "Badge name",
"desc_placeholder": "Badge description",
"icon_placeholder": "Icon URL",
"icon_hint": "Optional. The icon URL for the badge.",
"icon_preview": "Icon preview",
"create_btn": "Create",
"delete_title": "Delete Badge",
"delete_confirm": "Are you sure you want to delete this badge?",
"delete_btn": "Delete",
"created": "Badge created!",
"updated": "Badge updated!",
"deleted": "Badge deleted!",
"save_error": "Failed to save badge.",
"delete_error": "Failed to delete badge.",
"unknown_error": "Unknown error"
},
"levels": {
"title": "Levels",
"subtitle": "Level configuration management — CRUD",
"loading": "Loading levels...",
"error": "Failed to load level configurations.",
"retry": "Retry",
"create": "New Level",
"no_items": "No level configurations yet.",
"level": "Level",
"rank": "Rank",
"min_points": "Min Points",
"type": "Type",
"actions": "Actions",
"penalty": "Penalty",
"normal": "Normal",
"tree_diagram": "Level Tree Diagram",
"no_tree_data": "No levels to display.",
"points": "points",
"edit_title": "Edit Level",
"create_title": "Create Level",
"level_number": "Level Number",
"rank_name": "Rank Name",
"min_points_label": "Minimum Points",
"is_penalty": "Penalty Level",
"cancel": "Cancel",
"save": "Save",
"saving": "Saving...",
"updated": "Level updated!",
"created": "Level created!",
"duplicate_level": "A configuration with this level number already exists.",
"save_error": "Failed to save level."
},
"point_rules": {
"title": "Point Rules",
"subtitle": "Gamification point rules management — CRUD",
"loading": "Loading point rules...",
"error": "Failed to load point rules.",
"retry": "Retry",
"create": "New Point Rule",
"no_items": "No point rules yet. Create one with the button above!",
"id": "ID",
"action_key": "Action Key",
"points": "Points",
"description": "Description",
"status": "Status",
"actions": "Actions",
"active": "Active",
"inactive": "Inactive",
"edit": "Edit",
"delete": "Delete (soft-delete)",
"edit_title": "Edit Point Rule",
"create_title": "New Point Rule",
"action_key_label": "Action Key",
"action_key_placeholder": "e.g. service_submitted",
"points_label": "Point Value",
"points_placeholder": "0",
"description_label": "Description",
"description_placeholder": "Short description of the rule...",
"is_active": "Active",
"cancel": "Cancel",
"save": "Save",
"saving": "Saving...",
"updated": "Point rule updated!",
"created": "Point rule created!",
"deleted": "Point rule deactivated!",
"duplicate_key": "A rule with this action key already exists.",
"save_error": "Failed to save point rule.",
"delete_title": "Delete Point Rule",
"delete_confirm": "Are you sure you want to deactivate the rule",
"delete_btn": "Delete",
"deleting": "Deleting..."
},
"seasons": {
"title": "Seasons",
"subtitle": "Gamification season management",
"loading": "Loading seasons...",
"error": "Failed to load seasons.",
"retry": "Retry",
"create": "New Season",
"no_items": "No seasons created yet.",
"create_first": "Create First Season",
"active": "Active",
"inactive": "Inactive",
"created_at": "Created:",
"activate": "Activate",
"edit": "Edit",
"edit_title": "Edit Season",
"create_title": "New Season",
"name": "Name",
"name_placeholder": "e.g. 2026 Q1 Season",
"start_date": "Start Date",
"end_date": "End Date",
"activate_on_create": "Activate on creation",
"cancel": "Cancel",
"save": "Save",
"create_btn": "Create",
"activate_title": "Activate Season",
"activate_confirm": "Are you sure you want to activate",
"activate_warning": "This will deactivate all other seasons.",
"activating": "Activating...",
"activate_btn": "Activate",
"save_error": "Failed to save season."
},
"competitions": {
"title": "Competitions",
"subtitle": "Seasonal competition management",
"loading": "Loading competitions...",
"error": "Failed to load competitions.",
"retry": "Retry",
"create": "New Competition",
"no_items": "No competitions created yet.",
"create_first": "Create First Competition",
"season_filter": "Season Filter:",
"all_seasons": "All Seasons",
"active_badge": "(Active)",
"status_active": "Active",
"status_draft": "Draft",
"status_completed": "Completed",
"status_cancelled": "Cancelled",
"view_rules": "View Rules",
"edit": "Edit",
"cancel": "Cancel",
"save": "Save",
"create_title": "Create Competition",
"edit_title": "Edit Competition",
"name": "Name",
"name_placeholder": "e.g. Q1 Service Submission Contest",
"description": "Description",
"desc_placeholder": "Competition description...",
"season": "Season",
"select_season": "Select a season",
"start_date": "Start Date",
"end_date": "End Date",
"status": "Status",
"rules": "Rules (JSON)",
"rules_placeholder": "type: service_submission, points_multiplier: 1.5",
"invalid_json": "Invalid JSON format!",
"create_btn": "Create",
"season_id_label": "Season ID:",
"save_error": "Failed to save competition."
},
"leaderboard": {
"title": "Leaderboard",
"subtitle": "Gamification leaderboard admin view",
"search": "Search",
"level": "Level",
"min_xp": "Min XP",
"sort": "Sort",
"sort_xp": "By XP",
"sort_points": "By Points",
"sort_social": "By Social Points",
"sort_level": "By Level",
"filter": "Filter",
"reset": "Reset",
"descending": "Descending",
"ascending": "Ascending",
"user": "user",
"loading": "Loading leaderboard...",
"error": "Failed to load leaderboard.",
"retry": "Retry",
"no_results": "No results match your filters.",
"no_results_hint": "Try different filter criteria.",
"user_col": "User",
"email": "Email",
"xp": "XP",
"points": "Points",
"social": "Social",
"penalty": "Penalty",
"restriction": "Restriction",
"discoveries": "Discoveries",
"services": "Services",
"updated": "Last Updated",
"actions": "Actions",
"details": "Details",
"prev": "Previous",
"next": "Next",
"page_of": "/ page",
"restriction_mild": "Mild",
"restriction_moderate": "Moderate",
"restriction_severe": "Severe"
},
"users": {
"title": "Gamification Users",
"subtitle": "User gamification statistics management",
"loading": "Loading users...",
"error": "Failed to load user statistics.",
"retry": "Retry",
"no_results": "No user statistics to display.",
"level": "Level",
"all_levels": "All Levels",
"level_n": "Level {n}",
"min_xp": "Minimum XP",
"max_xp": "Maximum XP",
"penalty": "Penalty",
"any": "Any",
"only_penalized": "Only penalized",
"only_clean": "Only clean",
"filter": "Filter",
"reset": "Reset",
"count": "users",
"user_id": "User ID",
"xp": "XP",
"points": "Points",
"restriction": "Restriction",
"services": "Services",
"discoveries": "Discoveries",
"updated": "Last Updated",
"actions": "Actions",
"details": "Details",
"prev": "Previous",
"next": "Next",
"none": "None",
"restriction_mild": "Mild",
"restriction_moderate": "Moderate",
"restriction_severe": "Severe",
"user_detail": {
"back": "Back to list",
"title": "User Gamification Details",
"id_label": "ID:",
"loading": "Loading user...",
"error": "Failed to load user data.",
"retry": "Retry",
"not_found": "User not found.",
"total_xp": "Total XP",
"level": "Level",
"total_points": "Total Points",
"social_points": "Social Points",
"penalty_points": "Penalty Points",
"restriction_level": "Restriction Level",
"penalty_quota": "Penalty Quota",
"banned_until": "Banned Until",
"no": "No",
"services": "Services",
"discovered_places": "Discovered Places",
"validated_places": "Validated Places",
"added_providers": "Added Providers",
"penalty_form_title": "Assign Penalty",
"penalty_points_label": "Penalty Points",
"penalty_reason_label": "Reason",
"penalty_reason_placeholder": "Reason for penalty...",
"penalty_submit": "Assign Penalty",
"penalty_submitting": "Submitting...",
"penalty_success": "Penalty successfully assigned: {amount} points.",
"penalty_error": "Failed to assign penalty.",
"reward_form_title": "Assign Reward",
"reward_xp_label": "XP Reward",
"reward_social_label": "Social Points Reward",
"reward_reason_label": "Reason",
"reward_reason_placeholder": "Reason for reward...",
"reward_submit": "Assign Reward",
"reward_submitting": "Submitting...",
"reward_success": "Reward successfully assigned: {xp} XP, {social} social points.",
"reward_error": "Failed to assign reward.",
"ledger_title": "Points Ledger",
"ledger_count": "entries",
"ledger_loading": "Loading...",
"ledger_empty": "No ledger entries for this user yet.",
"ledger_date": "Date",
"ledger_points": "Points",
"ledger_penalty": "Penalty",
"ledger_xp": "XP",
"ledger_reason": "Reason",
"ledger_source": "Source"
}
}
}
}

View File

@@ -1,49 +0,0 @@
{
"back": "Back to list",
"title": "User Gamification Details",
"id_label": "ID:",
"loading": "Loading user...",
"error": "Failed to load user data.",
"retry": "Retry",
"not_found": "User not found.",
"total_xp": "Total XP",
"level": "Level",
"total_points": "Total Points",
"social_points": "Social Points",
"penalty_points": "Penalty Points",
"restriction_level": "Restriction Level",
"penalty_quota": "Penalty Quota",
"banned_until": "Banned Until",
"no": "No",
"services": "Services",
"discovered_places": "Discovered Places",
"validated_places": "Validated Places",
"added_providers": "Added Providers",
"penalty_form_title": "Assign Penalty",
"penalty_points_label": "Penalty Points",
"penalty_reason_label": "Reason",
"penalty_reason_placeholder": "Reason for penalty...",
"penalty_submit": "Assign Penalty",
"penalty_submitting": "Submitting...",
"penalty_success": "Penalty successfully assigned: {amount} points.",
"penalty_error": "Failed to assign penalty.",
"reward_form_title": "Assign Reward",
"reward_xp_label": "XP Reward",
"reward_social_label": "Social Points Reward",
"reward_reason_label": "Reason",
"reward_reason_placeholder": "Reason for reward...",
"reward_submit": "Assign Reward",
"reward_submitting": "Submitting...",
"reward_success": "Reward successfully assigned: {xp} XP, {social} social points.",
"reward_error": "Failed to assign reward.",
"ledger_title": "Points Ledger",
"ledger_count": "entries",
"ledger_loading": "Loading...",
"ledger_empty": "No ledger entries for this user yet.",
"ledger_date": "Date",
"ledger_points": "Points",
"ledger_penalty": "Penalty",
"ledger_xp": "XP",
"ledger_reason": "Reason",
"ledger_source": "Source"
}

View File

@@ -1,35 +0,0 @@
{
"title": "Gamification Users",
"subtitle": "User gamification statistics management",
"loading": "Loading users...",
"error": "Failed to load user statistics.",
"retry": "Retry",
"no_results": "No user statistics to display.",
"level": "Level",
"all_levels": "All Levels",
"level_n": "Level {n}",
"min_xp": "Minimum XP",
"max_xp": "Maximum XP",
"penalty": "Penalty",
"any": "Any",
"only_penalized": "Only penalized",
"only_clean": "Only clean",
"filter": "Filter",
"reset": "Reset",
"count": "users",
"user_id": "User ID",
"xp": "XP",
"points": "Points",
"restriction": "Restriction",
"services": "Services",
"discoveries": "Discoveries",
"updated": "Last Updated",
"actions": "Actions",
"details": "Details",
"prev": "Previous",
"next": "Next",
"none": "None",
"restriction_mild": "Mild",
"restriction_moderate": "Moderate",
"restriction_severe": "Severe"
}

View File

@@ -1,24 +0,0 @@
{
"ltv": "Lifetime Value (LTV)",
"mrr": "Monthly Revenue (MRR)",
"monthly_recurring": "Monthly recurring revenue",
"outstanding": "Outstanding",
"all_settled": "All invoices settled",
"earned_credits": "Earned Credits",
"contribution_xp": "XP earned from platform contributions",
"invited_companies": "Invited Companies",
"companies_joined": "Companies joined via your invite",
"validated_garages": "Validated Garages",
"garages_confirmed": "Garages successfully verified",
"utilization": "Utilization",
"vehicle_quota": "Vehicle Quota",
"employee_quota": "Employee Quota",
"utilized": "utilized",
"marketplace_engagement": "Marketplace & Engagement",
"avg_rating": "Average Rating",
"reviews": "Reviews",
"reviews_count": "reviews",
"last_activity": "Last Activity",
"last_login_mock": "2 hours ago",
"services_30d": "Services Completed (30 days)"
}

View File

@@ -1,83 +0,0 @@
{
"loading": "Loading garage details...",
"retry": "Retry",
"back": "Back to garages",
"company_info": "Company Info",
"company_name": "Company Name",
"display_name": "Display Name",
"org_type": "Organization Type",
"tax_number": "Tax Number",
"reg_number": "Registration Number",
"created_at": "Created At",
"address": "Address",
"subscription_info": "Subscription Status",
"tier_name": "Package",
"tier_level": "Level",
"level_n": "Level {n}",
"expires_at": "Expires",
"asset_limit": "Vehicle Limit",
"vehicles": "vehicles",
"no_subscription": "No active subscription",
"contact_info": "Contact Info",
"contact_name": "Contact Name",
"contact_role": "Role",
"contact_department": "Department",
"contact_phone": "Contact Phone",
"no_contact": "No primary contact person",
"edit_details": "Edit Details",
"save": "Save",
"generalTab": "General",
"employeesTab": "Employees",
"fleetTab": "Fleet",
"analyticsTab": "Analytics",
"subscriptionTab": "Subscription",
"editBasicTab": "Basic Info",
"editContactTab": "Contact",
"editAddressTab": "Addresses",
"zip": "ZIP Code",
"city": "City",
"street_name": "Street",
"street_type": "Street Type",
"house_number": "House Number",
"coming_soon": "This feature will be available soon...",
"missing_data_title": "Missing Data",
"missing_data_desc": "The garage profile is incomplete. Please fill in the missing fields.",
"missing_data_activation_required": "To activate the garage, the following data must be provided:",
"missing_tax_number": "Tax Number",
"missing_billing": "Billing Address",
"missing_contact_email": "Contact Email",
"missing_contact_phone": "Contact Phone",
"missing_data_count": "{count} fields missing",
"contact_person_name": "Contact Person Name",
"contact_email": "Contact Email",
"billing_address": "Billing Address",
"billing_zip": "ZIP Code",
"billing_city": "City",
"billing_street_name": "Street",
"billing_street_type": "Street Type",
"billing_house_number": "House Number",
"notification_address": "Notification Address",
"notification_zip": "ZIP Code",
"notification_city": "City",
"notification_street_name": "Street",
"notification_street_type": "Street Type",
"notification_house_number": "House Number",
"tab_basic": "Basic Info",
"tab_contact": "Contact",
"tab_addresses": "Addresses",
"basic_info": "Basic Info",
"contact_section": "Contact Person",
"addresses_section": "Addresses",
"vehicles_used": "Vehicles",
"branches_used": "Branches",
"employees_used": "Employees",
"branches": "branches",
"employees": "employees",
"status": "Status",
"subscription_history": "Subscription History",
"history_date": "Date",
"history_package": "Package",
"history_action": "Action",
"history_status": "Status",
"no_subscription_history": "No subscription history yet."
}

View File

@@ -1,37 +0,0 @@
{
"title": "Employees",
"total_count": "{count} employees",
"name": "Name",
"email_phone": "Email / Phone",
"role": "Role",
"status": "Status",
"actions": "Actions",
"edit_role": "Edit",
"remove": "Remove",
"no_employees": "No employees assigned to this garage.",
"edit_role_title": "Edit Employee Role",
"editRoleTitle": "Edit Employee Role",
"editRoleFor": "Change role for {name}",
"cancel": "Cancel",
"save": "Save Changes",
"saveRole": "Save Role",
"saving": "Saving...",
"status_active": "Active",
"status_inactive": "Inactive",
"remove_title": "Remove Employee",
"removeTitle": "Remove Employee",
"remove_confirm": "Are you sure you want to remove \"{name}\" from this garage?",
"removeConfirm": "Are you sure you want to remove \"{name}\" from this garage?",
"remove_btn": "Remove",
"removing": "Removing...",
"add_employee": "Add Employee",
"addTitle": "Add New Employee",
"email": "Email Address",
"emailPlaceholder": "Enter email address...",
"roleMember": "Member",
"roleManager": "Manager",
"roleAdmin": "Admin",
"roleOwner": "Owner",
"add": "Add Employee",
"adding": "Adding..."
}

View File

@@ -1,13 +0,0 @@
{
"title": "Fleet",
"total_vehicles": "{count} vehicles total",
"plate": "Plate",
"brand": "Brand",
"model": "Model",
"brand_model": "Brand & Model",
"year": "Year",
"status": "Status",
"vin": "VIN",
"no_vehicles": "No vehicles assigned to this garage yet.",
"no_fleet_access": "You don't have permission to view fleet data."
}

View File

@@ -1,53 +1,212 @@
{
"title": "Garages CRM",
"subtitle": "Garage list, package management and status changes",
"total_garages": "Total Garages",
"private_garages": "Private Garages",
"corporate_garages": "Corporate Garages",
"search_placeholder": "Search by name, contact or email...",
"all_tiers": "All packages",
"all_types": "All types",
"type_individual": "Private (Individual)",
"type_corporate": "Corporate",
"company_name": "Company Name",
"email": "Email",
"status": "Status",
"current_package": "Current Package",
"expiration_date": "Expiration Date",
"actions": "Actions",
"active": "Active",
"inactive": "Inactive",
"suspended": "Suspended",
"change_package": "Change Package",
"manage_subscription": "Manage Subscription",
"view": "View",
"activate": "Activate",
"deactivate": "Deactivate",
"no_results": "No garages match your search.",
"loading": "Loading garages...",
"retry": "Retry",
"members": "members",
"free_fallback": "Free / Fallback",
"expires": "Expires",
"select_package": "Select Package",
"select_package_placeholder": "Select a subscription package...",
"custom_expiration": "Custom Expiration Date",
"optional": "optional",
"custom_expiration_hint": "Leave empty for default duration (e.g. 30 days). For 2-5 year B2B deals, set a custom date!",
"cancel": "Cancel",
"save": "Save",
"saving": "Saving...",
"subscription_updated": "subscription updated successfully!",
"view_details": "Details",
"indefinite": "Indefinite",
"addons_title": "Add-ons",
"addon_vehicles": "Extra Vehicle",
"addon_branches": "Extra Branch",
"addon_users": "Extra Employee",
"active_addons": "Active Add-ons",
"no_active_addons": "No active add-ons",
"addon_vehicles_expiration": "Extra Vehicle Expiration",
"addon_branches_expiration": "Extra Branch Expiration",
"addon_users_expiration": "Extra Employee Expiration",
"addon_expiration_hint": "If empty, existing expiration dates remain."
"garages": {
"title": "Garages CRM",
"subtitle": "Garage list, package management and status changes",
"total_garages": "Total Garages",
"private_garages": "Private Garages",
"corporate_garages": "Corporate Garages",
"search_placeholder": "Search by name, contact or email...",
"all_tiers": "All packages",
"all_types": "All types",
"type_individual": "Private (Individual)",
"type_corporate": "Corporate",
"company_name": "Company Name",
"email": "Email",
"status": "Status",
"current_package": "Current Package",
"expiration_date": "Expiration Date",
"actions": "Actions",
"active": "Active",
"inactive": "Inactive",
"suspended": "Suspended",
"change_package": "Change Package",
"manage_subscription": "Manage Subscription",
"view": "View",
"activate": "Activate",
"deactivate": "Deactivate",
"no_results": "No garages match your search.",
"loading": "Loading garages...",
"retry": "Retry",
"members": "members",
"free_fallback": "Free / Fallback",
"expires": "Expires",
"select_package": "Select Package",
"select_package_placeholder": "Select a subscription package...",
"custom_expiration": "Custom Expiration Date",
"optional": "optional",
"custom_expiration_hint": "Leave empty for default duration (e.g. 30 days). For 2-5 year B2B deals, set a custom date!",
"cancel": "Cancel",
"save": "Save",
"saving": "Saving...",
"subscription_updated": "subscription updated successfully!",
"view_details": "Details",
"indefinite": "Indefinite",
"addons_title": "Add-ons",
"addon_vehicles": "Extra Vehicle",
"addon_branches": "Extra Branch",
"addon_users": "Extra Employee",
"active_addons": "Active Add-ons",
"no_active_addons": "No active add-ons",
"addon_vehicles_expiration": "Extra Vehicle Expiration",
"addon_branches_expiration": "Extra Branch Expiration",
"addon_users_expiration": "Extra Employee Expiration",
"addon_expiration_hint": "If empty, existing expiration dates remain.",
"details": {
"loading": "Loading garage details...",
"retry": "Retry",
"back": "Back to garages",
"company_info": "Company Info",
"company_name": "Company Name",
"display_name": "Display Name",
"org_type": "Organization Type",
"tax_number": "Tax Number",
"reg_number": "Registration Number",
"created_at": "Created At",
"address": "Address",
"subscription_info": "Subscription Status",
"tier_name": "Package",
"tier_level": "Level",
"level_n": "Level {n}",
"expires_at": "Expires",
"asset_limit": "Vehicle Limit",
"vehicles": "vehicles",
"no_subscription": "No active subscription",
"contact_info": "Contact Info",
"contact_name": "Contact Name",
"contact_role": "Role",
"contact_department": "Department",
"contact_phone": "Contact Phone",
"no_contact": "No primary contact person",
"edit_details": "Edit Details",
"save": "Save",
"generalTab": "General",
"employeesTab": "Employees",
"fleetTab": "Fleet",
"analyticsTab": "Analytics",
"subscriptionTab": "Subscription",
"editBasicTab": "Basic Info",
"editContactTab": "Contact",
"editAddressTab": "Addresses",
"zip": "ZIP Code",
"city": "City",
"street_name": "Street",
"street_type": "Street Type",
"house_number": "House Number",
"coming_soon": "This feature will be available soon...",
"missing_data_title": "Missing Data",
"missing_data_desc": "The garage profile is incomplete. Please fill in the missing fields.",
"missing_data_activation_required": "To activate the garage, the following data must be provided:",
"missing_tax_number": "Tax Number",
"missing_billing": "Billing Address",
"missing_contact_email": "Contact Email",
"missing_contact_phone": "Contact Phone",
"missing_data_count": "{count} fields missing",
"contact_person_name": "Contact Person Name",
"contact_email": "Contact Email",
"billing_address": "Billing Address",
"billing_zip": "ZIP Code",
"billing_city": "City",
"billing_street_name": "Street",
"billing_street_type": "Street Type",
"billing_house_number": "House Number",
"notification_address": "Notification Address",
"notification_zip": "ZIP Code",
"notification_city": "City",
"notification_street_name": "Street",
"notification_street_type": "Street Type",
"notification_house_number": "House Number",
"tab_basic": "Basic Info",
"tab_contact": "Contact",
"tab_addresses": "Addresses",
"basic_info": "Basic Info",
"contact_section": "Contact Person",
"addresses_section": "Addresses",
"vehicles_used": "Vehicles",
"branches_used": "Branches",
"employees_used": "Employees",
"branches": "branches",
"employees": "employees",
"status": "Status",
"subscription_history": "Subscription History",
"history_date": "Date",
"history_package": "Package",
"history_action": "Action",
"history_status": "Status",
"no_subscription_history": "No subscription history yet."
},
"employees": {
"title": "Employees",
"total_count": "{count} employees",
"name": "Name",
"email_phone": "Email / Phone",
"role": "Role",
"status": "Status",
"actions": "Actions",
"edit_role": "Edit",
"remove": "Remove",
"no_employees": "No employees assigned to this garage.",
"edit_role_title": "Edit Employee Role",
"editRoleTitle": "Edit Employee Role",
"editRoleFor": "Change role for {name}",
"cancel": "Cancel",
"save": "Save Changes",
"saveRole": "Save Role",
"saving": "Saving...",
"status_active": "Active",
"status_inactive": "Inactive",
"remove_title": "Remove Employee",
"removeTitle": "Remove Employee",
"remove_confirm": "Are you sure you want to remove \"{name}\" from this garage?",
"removeConfirm": "Are you sure you want to remove \"{name}\" from this garage?",
"remove_btn": "Remove",
"removing": "Removing...",
"add_employee": "Add Employee",
"addTitle": "Add New Employee",
"email": "Email Address",
"emailPlaceholder": "Enter email address...",
"roleMember": "Member",
"roleManager": "Manager",
"roleAdmin": "Admin",
"roleOwner": "Owner",
"add": "Add Employee",
"adding": "Adding..."
},
"fleet": {
"title": "Fleet",
"total_vehicles": "{count} vehicles total",
"plate": "Plate",
"brand": "Brand",
"model": "Model",
"brand_model": "Brand & Model",
"year": "Year",
"status": "Status",
"vin": "VIN",
"no_vehicles": "No vehicles assigned to this garage yet.",
"no_fleet_access": "You don't have permission to view fleet data."
},
"analytics": {
"ltv": "Lifetime Value (LTV)",
"mrr": "Monthly Revenue (MRR)",
"monthly_recurring": "Monthly recurring revenue",
"outstanding": "Outstanding",
"all_settled": "All invoices settled",
"earned_credits": "Earned Credits",
"contribution_xp": "XP earned from platform contributions",
"invited_companies": "Invited Companies",
"companies_joined": "Companies joined via your invite",
"validated_garages": "Validated Garages",
"garages_confirmed": "Garages successfully verified",
"utilization": "Utilization",
"vehicle_quota": "Vehicle Quota",
"employee_quota": "Employee Quota",
"utilized": "utilized",
"marketplace_engagement": "Marketplace & Engagement",
"avg_rating": "Average Rating",
"reviews": "Reviews",
"reviews_count": "reviews",
"last_activity": "Last Activity",
"last_login_mock": "2 hours ago",
"services_30d": "Services Completed (30 days)"
}
}
}

View File

@@ -1,40 +0,0 @@
{
"title": "Leaderboard",
"subtitle": "Gamification leaderboard admin view",
"search": "Search",
"level": "Level",
"min_xp": "Min XP",
"sort": "Sort",
"sort_xp": "By XP",
"sort_points": "By Points",
"sort_social": "By Social Points",
"sort_level": "By Level",
"filter": "Filter",
"reset": "Reset",
"descending": "Descending",
"ascending": "Ascending",
"user": "user",
"loading": "Loading leaderboard...",
"error": "Failed to load leaderboard.",
"retry": "Retry",
"no_results": "No results match your filters.",
"no_results_hint": "Try different filter criteria.",
"user_col": "User",
"email": "Email",
"xp": "XP",
"points": "Points",
"social": "Social",
"penalty": "Penalty",
"restriction": "Restriction",
"discoveries": "Discoveries",
"services": "Services",
"updated": "Last Updated",
"actions": "Actions",
"details": "Details",
"prev": "Previous",
"next": "Next",
"page_of": "/ page",
"restriction_mild": "Mild",
"restriction_moderate": "Moderate",
"restriction_severe": "Severe"
}

View File

@@ -1,29 +0,0 @@
{
"title": "Points Ledger",
"subtitle": "Gamification points ledger browser",
"loading": "Loading ledger...",
"error": "Failed to load ledger.",
"user_id": "User ID",
"date_from": "Date From",
"date_to": "Date To",
"reason": "Reason",
"search": "Search",
"clear": "Clear",
"csv": "CSV",
"no_results": "No results match your filters.",
"no_results_hint": "Try different filter criteria.",
"id": "ID",
"user": "User",
"points": "Points",
"penalty": "Penalty",
"xp": "XP",
"source": "Source",
"date": "Date",
"prev": "Previous",
"next": "Next",
"of": "of",
"showing": "showing",
"filtered": "(filtered)",
"no_csv_data": "No data for CSV export.",
"csv_downloaded": "CSV download started."
}

View File

@@ -1,32 +0,0 @@
{
"title": "Levels",
"subtitle": "Level configuration management — CRUD",
"loading": "Loading levels...",
"error": "Failed to load level configurations.",
"retry": "Retry",
"create": "New Level",
"no_items": "No level configurations yet.",
"level": "Level",
"rank": "Rank",
"min_points": "Min Points",
"type": "Type",
"actions": "Actions",
"penalty": "Penalty",
"normal": "Normal",
"tree_diagram": "Level Tree Diagram",
"no_tree_data": "No levels to display.",
"points": "points",
"edit_title": "Edit Level",
"create_title": "Create Level",
"level_number": "Level Number",
"rank_name": "Rank Name",
"min_points_label": "Minimum Points",
"is_penalty": "Penalty Level",
"cancel": "Cancel",
"save": "Save",
"saving": "Saving...",
"updated": "Level updated!",
"created": "Level created!",
"duplicate_level": "A configuration with this level number already exists.",
"save_error": "Failed to save level."
}

View File

@@ -1,35 +1,37 @@
{
"center": "Center",
"dashboard": "Dashboard",
"providers": "Providers",
"providers_title": "Providers",
"all_providers": "All Providers",
"pending_providers": "Pending Approval",
"users_and_partners": "Users & Partners",
"garages": "Garages",
"garage_list": "Garage List",
"users": "Users",
"user_list": "User List",
"persons": "Persons",
"finance": "Finance",
"packages": "Packages",
"gamification": "Gamification",
"game_settings": "Game Settings",
"point_rules": "Point Rules",
"levels": "Levels",
"badges": "Badges",
"validation_rules": "Validation Rules",
"events_and_seasons": "Events & Seasons",
"seasons": "Seasons",
"competitions": "Competitions",
"user_data": "User Data",
"statistics": "Statistics",
"leaderboard": "Leaderboard",
"points_ledger": "Points Ledger",
"gamification_hq": "Gamification HQ",
"system_config": "System Config",
"system_parameters": "System Parameters",
"system": "System",
"permissions": "Permissions",
"system_logs": "System Logs"
"menu": {
"center": "Center",
"dashboard": "Dashboard",
"providers": "Providers",
"providers_title": "Providers",
"all_providers": "All Providers",
"pending_providers": "Pending Approval",
"users_and_partners": "Users & Partners",
"garages": "Garages",
"garage_list": "Garage List",
"users": "Users",
"user_list": "User List",
"persons": "Persons",
"finance": "Finance",
"packages": "Packages",
"gamification": "Gamification",
"game_settings": "Game Settings",
"point_rules": "Point Rules",
"levels": "Levels",
"badges": "Badges",
"validation_rules": "Validation Rules",
"events_and_seasons": "Events & Seasons",
"seasons": "Seasons",
"competitions": "Competitions",
"user_data": "User Data",
"statistics": "Statistics",
"leaderboard": "Leaderboard",
"points_ledger": "Points Ledger",
"gamification_hq": "Gamification HQ",
"system_config": "System Config",
"system_parameters": "System Parameters",
"system": "System",
"permissions": "Permissions",
"system_logs": "System Logs"
}
}

View File

@@ -1,68 +0,0 @@
{
"title": "Package Management",
"subtitle": "Manage subscription packages and features — Free, Premium, Enterprise",
"loading": "Loading packages...",
"retry": "Retry",
"create_new": "New Package",
"no_packages": "No packages yet",
"no_packages_desc": "Create your first subscription package to get started.",
"create_first": "Create First Package",
"popular": "Popular",
"fallback_badge": "Fallback",
"trial_badge": "Trial",
"month": "mo",
"feature_flags": "Available Features",
"edit": "Edit",
"duplicate": "Duplicate",
"delete": "Delete",
"set_as_default": "Set as Default",
"set_as_default_success": "set as default package!",
"edit_title": "Edit Package",
"create_title": "Create Package",
"cancel": "Cancel",
"save": "Save Changes",
"create": "Create",
"save_success": "Package updated successfully!",
"delete_title": "Delete Package",
"delete_confirm": "Are you sure you want to delete \"{name}\"?",
"delete_btn": "Delete",
"allowances": "Allowances",
"max_vehicles": "Max Vehicles",
"max_garages": "Max Garages",
"max_users": "Max Users",
"monthly_credits": "Monthly Credits",
"tier_level": "Level",
"form_name": "System Name",
"form_name_placeholder": "e.g. premium_2024",
"form_display_name": "Display Name",
"form_display_name_placeholder": "e.g. Premium Plus",
"form_type": "Type",
"type_private": "Private",
"type_corporate": "Corporate",
"form_tier_level": "Tier Level",
"form_tier_level_hint": "Higher number = more features and higher rank",
"form_monthly_price": "Monthly Price",
"form_yearly_price": "Yearly Price",
"form_currency": "Currency",
"form_subtitle": "Subtitle / Description",
"form_subtitle_placeholder": "e.g. Ideal for small businesses",
"form_badge": "Badge Text",
"form_badge_placeholder": "e.g. Most Popular",
"form_is_custom": "Custom Package (not public)",
"singleton_rules": "Singleton Rules",
"form_is_default_fallback": "Default Fallback Package — expired subscriptions fall back to this",
"form_trial_days": "Trial Days on Signup",
"form_trial_days_hint": "New organizations get this many free days. Only one package can have > 0.",
"per_region_pricing": "Per-Region Pricing",
"smart_calculator": "Smart Price Calculator",
"calc_net_price": "Net Price",
"calc_vat_rate": "VAT Rate",
"calc_currency": "Currency",
"calc_net": "Net",
"calc_vat": "VAT",
"calc_gross": "Gross",
"calc_apply": "Apply to selected region",
"add_zone": "Add New Zone",
"add_zone_select": "Select country code...",
"add_zone_already_exists": "This region already exists in the package pricing!"
}

View File

@@ -1,26 +0,0 @@
{
"title": "System Parameters",
"subtitle": "Gamification category system parameters",
"loading": "Loading parameters...",
"error": "Failed to load system parameters.",
"retry": "Retry",
"no_items": "No gamification system parameters.",
"key": "Key",
"value": "Value",
"category": "Category",
"scope": "Scope",
"scope_id": "Scope ID",
"actions": "Actions",
"edit": "Edit",
"edit_title": "Edit Parameter",
"value_label": "Value",
"value_placeholder": "Parameter value (JSON or plain text)",
"json_detected": "🔹 JSON format detected",
"text_value": "🔸 Text value",
"cancel": "Cancel",
"save": "Save",
"saving": "Saving...",
"invalid_json": "Invalid JSON format: ",
"save_error": "Failed to save parameter.",
"updated": "updated!"
}

View File

@@ -1,28 +0,0 @@
{
"title": "Permissions Management",
"subtitle": "Permission Matrix — Role-based access control",
"loading": "Loading permissions...",
"error_title": "Failed to load permissions",
"retry": "Retry",
"save_changes": "Save Changes",
"discard": "Discard",
"modified_count": "{count} changes",
"domain_filter": "Domain Filter (Rows)",
"role_filter": "Role Filter (Columns)",
"select_all": "Select All",
"deselect_all": "Deselect All",
"all_domains": "All",
"permission": "Permission",
"no_permissions": "No permissions in this domain.",
"current_tier": "Current Package",
"expires": "Expires",
"superadmin": "Superadmin",
"superadmin_desc": "Full system access — users, billing, robots and system configuration.",
"garages": "Garages",
"garages_desc": "Garage-level access — vehicle management, service booking, customer data.",
"feature_flags": "Feature Flags",
"feature_flags_desc": "Subscription features — based on your current plan ({tier}).",
"rbac_title": "RBAC Permission Matrix",
"rbac_desc": "Role-based access control — which roles can perform which admin actions.",
"action": "Action"
}

View File

@@ -1,110 +0,0 @@
{
"title": "Person Management",
"subtitle": "Person list, search, filters and details",
"loading": "Loading persons...",
"retry": "Retry",
"search_placeholder": "Search by name, phone or email...",
"all_ghost_statuses": "All ghost statuses",
"ghost_no": "Not ghost",
"ghost_yes": "Ghost",
"all_active_statuses": "All active statuses",
"active_yes": "Active",
"active_no": "Inactive",
"all_user_statuses": "All user statuses",
"has_user_yes": "Has user",
"has_user_no": "No user",
"all_merged_statuses": "All merged statuses",
"merged_no": "Not merged",
"merged_yes": "Merged",
"total_persons": "Total Persons",
"active_persons": "Active Persons",
"ghost_persons": "Ghost Persons",
"merged_persons": "Merged Persons",
"filtered_results": "Filtered results",
"name": "Name",
"phone": "Phone",
"birth_date": "Birth Date",
"status": "Status",
"users_count": "Users",
"active_user": "Active User",
"address": "Address",
"actions": "Actions",
"active": "Active",
"inactive": "Inactive",
"ghost": "Ghost",
"merged": "Merged",
"view": "View",
"no_results": "No persons match your search.",
"showing": "Showing",
"prev": "Previous",
"next": "Next",
"details": {
"loading": "Loading person details...",
"retry": "Retry",
"back": "Back to list",
"sales_agent": "Sales Agent",
"edit": "Edit",
"personal_info": "Personal Information",
"person_id": "Person ID",
"uuid": "UUID",
"last_name": "Last Name",
"first_name": "First Name",
"birth_place": "Place of Birth",
"mothers_name": "Mother's Name",
"mothers_last_name": "Mother's Last Name",
"mothers_first_name": "Mother's First Name",
"address": "Address",
"zip": "ZIP Code",
"city": "City",
"street": "Street",
"house_number": "House Number",
"stairwell": "Stairwell",
"floor": "Floor",
"door": "Door",
"parcel_id": "Parcel ID (HRSZ)",
"full_address": "Full Address",
"system_info": "System Information",
"is_sales_agent": "Sales Agent",
"lifetime_xp": "Lifetime XP",
"penalty_points": "Penalty Points",
"social_reputation": "Social Reputation",
"created_at": "Created At",
"updated_at": "Updated At",
"deleted_at": "Deleted At",
"identity_docs": "Identity Documents",
"ice_contact": "ICE Contact",
"connected_users": "Connected Users",
"users_count": "{count} user(s) connected",
"no_users": "No users connected to this person.",
"email": "Email",
"role": "Role",
"plan": "Plan",
"language": "Language",
"registered_at": "Registered At",
"memberships": "Memberships",
"memberships_count": "{count} membership(s)",
"no_memberships": "No memberships.",
"org_name": "Organization Name",
"org_type": "Type",
"org_role": "Role",
"member_status": "Status",
"verified": "Verified",
"joined_at": "Joined At",
"verified_yes": "Yes",
"verified_no": "No",
"owned_orgs": "Owned Organizations",
"owned_orgs_count": "{count} organization(s)",
"no_owned_orgs": "No owned organizations.",
"merge_history": "Merge History",
"no_merge_history": "No merge history.",
"merged_into": "Merged into",
"merged_at": "Merged At",
"edit_title": "Edit Person",
"status_section": "Status",
"is_active": "Active",
"is_ghost": "Ghost",
"cancel": "Cancel",
"saving": "Saving...",
"save": "Save"
}
}

View File

@@ -1,40 +0,0 @@
{
"title": "Point Rules",
"subtitle": "Gamification point rules management — CRUD",
"loading": "Loading point rules...",
"error": "Failed to load point rules.",
"retry": "Retry",
"create": "New Point Rule",
"no_items": "No point rules yet. Create one with the button above!",
"id": "ID",
"action_key": "Action Key",
"points": "Points",
"description": "Description",
"status": "Status",
"actions": "Actions",
"active": "Active",
"inactive": "Inactive",
"edit": "Edit",
"delete": "Delete (soft-delete)",
"edit_title": "Edit Point Rule",
"create_title": "New Point Rule",
"action_key_label": "Action Key",
"action_key_placeholder": "e.g. service_submitted",
"points_label": "Point Value",
"points_placeholder": "0",
"description_label": "Description",
"description_placeholder": "Short description of the rule...",
"is_active": "Active",
"cancel": "Cancel",
"save": "Save",
"saving": "Saving...",
"updated": "Point rule updated!",
"created": "Point rule created!",
"deleted": "Point rule deactivated!",
"duplicate_key": "A rule with this action key already exists.",
"save_error": "Failed to save point rule.",
"delete_title": "Delete Point Rule",
"delete_confirm": "Are you sure you want to deactivate the rule",
"delete_btn": "Delete",
"deleting": "Deleting..."
}

View File

@@ -1,280 +1,282 @@
{
"title": "Providers",
"subtitle": "Provider listing, search and moderation",
"loading": "Loading providers...",
"error": "An error occurred while loading providers.",
"retry": "Retry",
"stats_total": "Total",
"stats_pending": "Pending",
"stats_approved": "Approved",
"stats_rejected": "Rejected",
"stats_flagged": "Flagged",
"search_placeholder": "Search by name...",
"filter_all_status": "All statuses",
"filter_pending": "Pending",
"filter_approved": "Approved",
"filter_rejected": "Rejected",
"filter_flagged": "Flagged",
"filter_all_sources": "All sources",
"source_manual": "Manual",
"source_ocr": "OCR",
"source_import": "Import",
"source_bot": "Bot (Staging)",
"source_verified_org": "Organization",
"sort_created_at": "Created at",
"sort_name": "Name",
"sort_validation_score": "Validation score",
"col_id": "ID",
"col_name": "Name",
"col_address": "Address",
"col_status": "Status",
"col_source": "Source",
"col_validation": "Validation",
"col_created": "Created",
"col_actions": "Actions",
"no_providers": "No providers to display.",
"results_count": "{count} results (total: {total})",
"page": "Page {page}",
"view_details": "Details",
"status_pending": "Pending",
"status_approved": "Approved",
"status_rejected": "Rejected",
"status_flagged": "Flagged",
"provider_detail": "Provider Details",
"detail_loading": "Loading provider...",
"detail_not_found": "Provider not found.",
"detail_back": "Back to providers",
"detail_provider_number": "Provider #{id}",
"detail_raw_data": "Raw Data",
"detail_tab_data": "Data",
"detail_tab_status": "Status",
"detail_tab_validations": "Validations",
"detail_tab_crawler": "Crawler / Raw Data",
"detail_tab_history": "History",
"detail_section_basic": "Basic Information",
"detail_section_address": "Address Information",
"detail_section_contact": "Contact Information",
"detail_section_services": "Services",
"detail_section_vehicle_classes": "Vehicle Classes",
"detail_section_specializations": "Specializations",
"detail_section_opening_hours": "Opening Hours",
"detail_section_evidence": "Evidence Image",
"detail_section_moderation": "Moderation Actions",
"detail_section_status_management": "Status Management",
"detail_section_validation_score": "Validation Score",
"detail_section_gamification_validations": "Gamification Validations",
"detail_section_crawler_data": "Crawler / Raw Data",
"detail_section_history": "Status Change History",
"detail_field_name": "Name",
"detail_field_category": "Category",
"detail_field_source": "Source",
"detail_field_validation_score": "Validation Score",
"detail_field_created": "Created",
"detail_field_submitted_by": "Submitted by User ID",
"detail_field_full_address": "Full Address",
"detail_field_city": "City",
"detail_field_zip": "ZIP Code",
"detail_field_street": "Street",
"detail_field_house_number": "House Number",
"detail_field_plus_code": "Plus Code",
"detail_field_phone": "Phone",
"detail_field_email": "Email",
"detail_field_website": "Website",
"detail_no_categories": "No categories set",
"detail_no_vehicle_classes": "No vehicle classes set",
"detail_no_specializations": "No specializations set",
"detail_no_opening_hours": "No opening hours set",
"detail_day_monday": "Monday",
"detail_day_tuesday": "Tuesday",
"detail_day_wednesday": "Wednesday",
"detail_day_thursday": "Thursday",
"detail_day_friday": "Friday",
"detail_day_saturday": "Saturday",
"detail_day_sunday": "Sunday",
"detail_day_label": "Day",
"detail_hours_label": "Hours",
"detail_closed": "Closed",
"detail_specialization_brands": "Brands",
"detail_specialization_propulsion": "Propulsion",
"detail_status_approved": "Approved",
"detail_status_pending": "Pending",
"detail_status_research": "Research in progress",
"detail_status_rejected": "Rejected",
"detail_status_unknown": "Unknown",
"detail_status_desc_approved": "The provider is active and visible to users.",
"detail_status_desc_pending": "The provider has not been approved yet, awaiting moderation.",
"detail_status_desc_research": "Provider data is still being processed, automated research in progress.",
"detail_status_desc_rejected": "The provider has been rejected and is not visible to users.",
"detail_edit": "Edit",
"detail_approve": "Approve",
"detail_reject": "Reject",
"detail_flag": "Flag",
"detail_delete": "Delete (Soft Delete)",
"detail_restore": "Restore",
"detail_status_rejected_or_flagged": "The provider has been {status}.",
"detail_status_rejected_text": "rejected",
"detail_status_flagged_text": "flagged",
"detail_status_form_label": "Status",
"detail_status_form_score": "Validation Score (0-100)",
"detail_status_form_reason": "Reason (optional)",
"detail_status_form_reason_placeholder": "Enter the reason for status change...",
"detail_status_form_cancel": "Cancel",
"detail_status_form_save": "Save Status",
"detail_validation_score_excellent": "Excellent",
"detail_validation_score_medium": "Medium",
"detail_validation_score_weak": "Weak",
"detail_validation_score_desc": "Provider reliability score based on gamification validations.",
"detail_validation_no_entries": "No validation entries for this provider.",
"detail_validation_voter": "Voter:",
"detail_validation_reason": "Reason:",
"detail_validation_weight": "weight:",
"detail_crawler_source": "Source:",
"detail_crawler_trust_score": "Trust Score:",
"detail_crawler_rejection_reason_title": "Rejection Reason",
"detail_crawler_raw_data": "Raw Data",
"detail_crawler_audit_trail": "Audit Trail",
"detail_history_no_entries": "No history entries for this provider.",
"detail_history_user": "User #{id}",
"detail_history_status": "Status:",
"detail_history_reason": "Reason:",
"detail_history_detailed_changes": "Detailed Changes",
"detail_history_old_data": "Old Data",
"detail_flag_modal_title": "Flag Provider",
"detail_flag_modal_body": "Are you sure you want to flag {name}?",
"detail_flag_reason_label": "Reason (optional)",
"detail_flag_reason_placeholder": "Enter the reason for flagging...",
"detail_flag_submit": "Flag",
"detail_toast_approved": "Provider approved!",
"detail_toast_rejected": "Provider rejected!",
"detail_toast_restored": "Provider restored!",
"detail_toast_flagged": "Provider flagged!",
"detail_toast_deleted": "Provider deleted!",
"detail_toast_status_updated": "Status updated!",
"detail_toast_error_approve": "Error approving provider",
"detail_toast_error_reject": "Error rejecting provider",
"detail_toast_error_restore": "Error restoring provider",
"detail_toast_error_flag": "Error flagging provider",
"detail_toast_error_delete": "Error deleting provider",
"detail_toast_error_status": "Error saving status",
"detail_delete_confirm": "Are you sure you want to delete this provider? This action cannot be undone.",
"detail_vehicle_class_car": "Car",
"detail_vehicle_class_motorcycle": "Motorcycle",
"detail_vehicle_class_truck": "Truck",
"detail_vehicle_class_hgv": "Heavy Goods Vehicle (HGV)",
"detail_vehicle_class_light_commercial": "Light Commercial Vehicle",
"detail_vehicle_class_personal": "Personal",
"detail_vehicle_class_boat": "Boat/Watercraft",
"detail_vehicle_class_other": "Other",
"detail_validation_type_phone_verified": "Phone Verified",
"detail_validation_type_email_verified": "Email Verified",
"detail_validation_type_address_verified": "Address Verified",
"detail_validation_type_website_verified": "Website Verified",
"detail_validation_type_manual_review": "Manual Review",
"detail_validation_type_community_vouch": "Community Vouch",
"detail_validation_type_business_hours": "Business Hours Verified",
"detail_validation_type_photo_evidence": "Photo Evidence",
"detail_history_action_approve": "Approved",
"detail_history_action_reject": "Rejected",
"detail_history_action_restore": "Restored",
"detail_history_action_flag": "Flagged",
"detail_history_action_update": "Updated",
"detail_history_action_delete": "Deleted",
"detail_history_action_create": "Created",
"pending_title": "Providers Pending Approval",
"pending_subtitle": "Community-submitted providers awaiting moderation",
"pending_loading": "Loading pending providers...",
"rejected_title": "Rejected Providers",
"rejected_subtitle": "Restore rejected providers to active searchable providers",
"rejected_loading": "Loading rejected providers...",
"approve": "Approve",
"reject": "Reject",
"restore": "Restore",
"details": "Details",
"reject_modal_title": "Reject Provider",
"reject_modal_body": "Are you sure you want to reject {name}?",
"reject_reason_label": "Reason (optional)",
"reject_reason_placeholder": "Enter the reason for rejection...",
"restore_modal_title": "Restore Provider",
"restore_modal_body": "Are you sure you want to restore {name}? After restoration, the provider will be available in search and listings again.",
"restore_reason_label": "Reason (optional)",
"restore_reason_placeholder": "Enter the reason for restoration...",
"no_pending": "No pending providers",
"no_pending_subtitle": "All submitted providers have been processed.",
"no_rejected": "No rejected providers",
"no_rejected_subtitle": "All providers are in approved status.",
"approved_toast": "\"{name}\" approved successfully",
"rejected_toast": "\"{name}\" rejected",
"restored_toast": "\"{name}\" restored successfully",
"error_prefix": "Error: {detail}",
"unknown_error": "Unknown error",
"label_address": "Address:",
"label_city": "City:",
"label_category": "Category:",
"label_validation_score": "Validation Score:",
"label_submitted": "Submitted:",
"label_created": "Created:",
"edit_title": "Edit Provider",
"edit_loading": "Loading provider...",
"edit_error": "An error occurred while loading the provider.",
"edit_not_found": "Provider not found.",
"edit_back": "Back to provider",
"edit_raw_data": "Raw Data",
"edit_tab_basic": "Basic & Contact",
"edit_tab_matrix": "Services & Vehicles",
"edit_tab_location": "Location",
"edit_tab_hours": "Opening Hours",
"edit_section_basic": "Basic Information",
"edit_section_contact": "Contact Information",
"edit_section_matrix": "3D Capability Matrix",
"edit_section_matrix_desc": "Configure which vehicle classes, service categories and specializations the provider belongs to.",
"edit_section_vehicle_classes": "Vehicle Classes",
"edit_section_vehicle_classes_desc": "Which vehicle types does the provider service?",
"edit_section_expertise_tags": "Service Categories (Expertise Tags)",
"edit_section_expertise_tags_desc": "Select the categories for the provider from the hierarchical tree.",
"edit_section_specializations": "Specializations",
"edit_section_specializations_desc": "Add special brands, propulsion types or other tags.",
"edit_section_location_extra": "Additional Location Data",
"edit_section_opening_hours": "Opening Hours",
"edit_section_opening_hours_desc": "Set the provider's opening hours broken down by day.",
"edit_field_name": "Name *",
"edit_field_category": "Category",
"edit_field_category_placeholder": "e.g. Auto Repair, Tire Service",
"edit_field_source": "Source",
"edit_field_phone": "Phone",
"edit_field_phone_placeholder": "+36 30 123 4567",
"edit_field_email": "Email",
"edit_field_email_placeholder": "info{'@'}example.com",
"edit_field_website": "Website",
"edit_field_website_placeholder": "https://...",
"edit_field_full_address": "Full Address",
"edit_field_full_address_placeholder": "Full address text",
"edit_field_plus_code": "Plus Code",
"edit_field_plus_code_placeholder": "8FVC9X8V+XV",
"edit_field_brands": "Brands",
"edit_field_brands_placeholder": "e.g. Volvo, Scania",
"edit_field_propulsion": "Propulsion",
"edit_field_propulsion_placeholder": "e.g. EV, Hybrid, Diesel",
"edit_field_add": "Add",
"edit_always_open": "24/7 opening hours",
"edit_always_open_desc": "The provider is open 24 hours every day of the week",
"edit_btn_24_7": "24/7 Continuous Hours",
"edit_btn_copy_weekdays": "Copy Weekdays (Mon → Fri)",
"edit_btn_clear_all": "Clear All",
"edit_closed": "Closed",
"edit_has_changes": "● Unsaved changes",
"edit_no_changes": "No changes",
"edit_cancel": "Cancel",
"edit_save": "Save",
"edit_toast_saved": "Provider updated successfully!",
"edit_toast_promoted": "Promoted successfully!",
"edit_toast_error": "Error saving: {message}",
"edit_copy_weekdays_open_prompt": "Enter opening time (e.g. 08:00):",
"edit_copy_weekdays_close_prompt": "Enter closing time (e.g. 17:00):",
"edit_categories_loading": "Loading categories...",
"edit_level_label": "(Level {level})",
"edit_source_label": "Source:",
"edit_trust_score_label": "Trust Score:",
"edit_raw_data_title": "Raw Data",
"edit_audit_trail_title": "Audit Trail",
"edit_rejection_reason_title": "Rejection Reason"
}
"providers": {
"title": "Providers",
"subtitle": "Provider listing, search and moderation",
"loading": "Loading providers...",
"error": "An error occurred while loading providers.",
"retry": "Retry",
"stats_total": "Total",
"stats_pending": "Pending",
"stats_approved": "Approved",
"stats_rejected": "Rejected",
"stats_flagged": "Flagged",
"search_placeholder": "Search by name...",
"filter_all_status": "All statuses",
"filter_pending": "Pending",
"filter_approved": "Approved",
"filter_rejected": "Rejected",
"filter_flagged": "Flagged",
"filter_all_sources": "All sources",
"source_manual": "Manual",
"source_ocr": "OCR",
"source_import": "Import",
"source_bot": "Bot (Staging)",
"source_verified_org": "Organization",
"sort_created_at": "Created at",
"sort_name": "Name",
"sort_validation_score": "Validation score",
"col_id": "ID",
"col_name": "Name",
"col_address": "Address",
"col_status": "Status",
"col_source": "Source",
"col_validation": "Validation",
"col_created": "Created",
"col_actions": "Actions",
"no_providers": "No providers to display.",
"results_count": "{count} results (total: {total})",
"page": "Page {page}",
"view_details": "Details",
"status_pending": "Pending",
"status_approved": "Approved",
"status_rejected": "Rejected",
"status_flagged": "Flagged",
"provider_detail": "Provider Details",
"detail_loading": "Loading provider...",
"detail_not_found": "Provider not found.",
"detail_back": "Back to providers",
"detail_provider_number": "Provider #{id}",
"detail_raw_data": "Raw Data",
"detail_tab_data": "Data",
"detail_tab_status": "Status",
"detail_tab_validations": "Validations",
"detail_tab_crawler": "Crawler / Raw Data",
"detail_tab_history": "History",
"detail_section_basic": "Basic Information",
"detail_section_address": "Address Information",
"detail_section_contact": "Contact Information",
"detail_section_services": "Services",
"detail_section_vehicle_classes": "Vehicle Classes",
"detail_section_specializations": "Specializations",
"detail_section_opening_hours": "Opening Hours",
"detail_section_evidence": "Evidence Image",
"detail_section_moderation": "Moderation Actions",
"detail_section_status_management": "Status Management",
"detail_section_validation_score": "Validation Score",
"detail_section_gamification_validations": "Gamification Validations",
"detail_section_crawler_data": "Crawler / Raw Data",
"detail_section_history": "Status Change History",
"detail_field_name": "Name",
"detail_field_category": "Category",
"detail_field_source": "Source",
"detail_field_validation_score": "Validation Score",
"detail_field_created": "Created",
"detail_field_submitted_by": "Submitted by User ID",
"detail_field_full_address": "Full Address",
"detail_field_city": "City",
"detail_field_zip": "ZIP Code",
"detail_field_street": "Street",
"detail_field_house_number": "House Number",
"detail_field_plus_code": "Plus Code",
"detail_field_phone": "Phone",
"detail_field_email": "Email",
"detail_field_website": "Website",
"detail_no_categories": "No categories set",
"detail_no_vehicle_classes": "No vehicle classes set",
"detail_no_specializations": "No specializations set",
"detail_no_opening_hours": "No opening hours set",
"detail_day_monday": "Monday",
"detail_day_tuesday": "Tuesday",
"detail_day_wednesday": "Wednesday",
"detail_day_thursday": "Thursday",
"detail_day_friday": "Friday",
"detail_day_saturday": "Saturday",
"detail_day_sunday": "Sunday",
"detail_day_label": "Day",
"detail_hours_label": "Hours",
"detail_closed": "Closed",
"detail_specialization_brands": "Brands",
"detail_specialization_propulsion": "Propulsion",
"detail_status_approved": "Approved",
"detail_status_pending": "Pending",
"detail_status_research": "Research in progress",
"detail_status_rejected": "Rejected",
"detail_status_unknown": "Unknown",
"detail_status_desc_approved": "The provider is active and visible to users.",
"detail_status_desc_pending": "The provider has not been approved yet, awaiting moderation.",
"detail_status_desc_research": "Provider data is still being processed, automated research in progress.",
"detail_status_desc_rejected": "The provider has been rejected and is not visible to users.",
"detail_edit": "Edit",
"detail_approve": "Approve",
"detail_reject": "Reject",
"detail_flag": "Flag",
"detail_delete": "Delete (Soft Delete)",
"detail_restore": "Restore",
"detail_status_rejected_or_flagged": "The provider has been {status}.",
"detail_status_rejected_text": "rejected",
"detail_status_flagged_text": "flagged",
"detail_status_form_label": "Status",
"detail_status_form_score": "Validation Score (0-100)",
"detail_status_form_reason": "Reason (optional)",
"detail_status_form_reason_placeholder": "Enter the reason for status change...",
"detail_status_form_cancel": "Cancel",
"detail_status_form_save": "Save Status",
"detail_validation_score_excellent": "Excellent",
"detail_validation_score_medium": "Medium",
"detail_validation_score_weak": "Weak",
"detail_validation_score_desc": "Provider reliability score based on gamification validations.",
"detail_validation_no_entries": "No validation entries for this provider.",
"detail_validation_voter": "Voter:",
"detail_validation_reason": "Reason:",
"detail_validation_weight": "weight:",
"detail_crawler_source": "Source:",
"detail_crawler_trust_score": "Trust Score:",
"detail_crawler_rejection_reason_title": "Rejection Reason",
"detail_crawler_raw_data": "Raw Data",
"detail_crawler_audit_trail": "Audit Trail",
"detail_history_no_entries": "No history entries for this provider.",
"detail_history_user": "User #{id}",
"detail_history_status": "Status:",
"detail_history_reason": "Reason:",
"detail_history_detailed_changes": "Detailed Changes",
"detail_history_old_data": "Old Data",
"detail_flag_modal_title": "Flag Provider",
"detail_flag_modal_body": "Are you sure you want to flag {name}?",
"detail_flag_reason_label": "Reason (optional)",
"detail_flag_reason_placeholder": "Enter the reason for flagging...",
"detail_flag_submit": "Flag",
"detail_toast_approved": "Provider approved!",
"detail_toast_rejected": "Provider rejected!",
"detail_toast_restored": "Provider restored!",
"detail_toast_flagged": "Provider flagged!",
"detail_toast_deleted": "Provider deleted!",
"detail_toast_status_updated": "Status updated!",
"detail_toast_error_approve": "Error approving provider",
"detail_toast_error_reject": "Error rejecting provider",
"detail_toast_error_restore": "Error restoring provider",
"detail_toast_error_flag": "Error flagging provider",
"detail_toast_error_delete": "Error deleting provider",
"detail_toast_error_status": "Error saving status",
"detail_delete_confirm": "Are you sure you want to delete this provider? This action cannot be undone.",
"detail_vehicle_class_car": "Car",
"detail_vehicle_class_motorcycle": "Motorcycle",
"detail_vehicle_class_truck": "Truck",
"detail_vehicle_class_hgv": "Heavy Goods Vehicle (HGV)",
"detail_vehicle_class_light_commercial": "Light Commercial Vehicle",
"detail_vehicle_class_personal": "Personal",
"detail_vehicle_class_boat": "Boat/Watercraft",
"detail_vehicle_class_other": "Other",
"detail_validation_type_phone_verified": "Phone Verified",
"detail_validation_type_email_verified": "Email Verified",
"detail_validation_type_address_verified": "Address Verified",
"detail_validation_type_website_verified": "Website Verified",
"detail_validation_type_manual_review": "Manual Review",
"detail_validation_type_community_vouch": "Community Vouch",
"detail_validation_type_business_hours": "Business Hours Verified",
"detail_validation_type_photo_evidence": "Photo Evidence",
"detail_history_action_approve": "Approved",
"detail_history_action_reject": "Rejected",
"detail_history_action_restore": "Restored",
"detail_history_action_flag": "Flagged",
"detail_history_action_update": "Updated",
"detail_history_action_delete": "Deleted",
"detail_history_action_create": "Created",
"pending_title": "Providers Pending Approval",
"pending_subtitle": "Community-submitted providers awaiting moderation",
"pending_loading": "Loading pending providers...",
"rejected_title": "Rejected Providers",
"rejected_subtitle": "Restore rejected providers to active searchable providers",
"rejected_loading": "Loading rejected providers...",
"approve": "Approve",
"reject": "Reject",
"restore": "Restore",
"details": "Details",
"reject_modal_title": "Reject Provider",
"reject_modal_body": "Are you sure you want to reject {name}?",
"reject_reason_label": "Reason (optional)",
"reject_reason_placeholder": "Enter the reason for rejection...",
"restore_modal_title": "Restore Provider",
"restore_modal_body": "Are you sure you want to restore {name}? After restoration, the provider will be available in search and listings again.",
"restore_reason_label": "Reason (optional)",
"restore_reason_placeholder": "Enter the reason for restoration...",
"no_pending": "No pending providers",
"no_pending_subtitle": "All submitted providers have been processed.",
"no_rejected": "No rejected providers",
"no_rejected_subtitle": "All providers are in approved status.",
"approved_toast": "\"{name}\" approved successfully",
"rejected_toast": "\"{name}\" rejected",
"restored_toast": "\"{name}\" restored successfully",
"error_prefix": "Error: {detail}",
"unknown_error": "Unknown error",
"label_address": "Address:",
"label_city": "City:",
"label_category": "Category:",
"label_validation_score": "Validation Score:",
"label_submitted": "Submitted:",
"label_created": "Created:",
"edit_title": "Edit Provider",
"edit_loading": "Loading provider...",
"edit_error": "An error occurred while loading the provider.",
"edit_not_found": "Provider not found.",
"edit_back": "Back to provider",
"edit_raw_data": "Raw Data",
"edit_tab_basic": "Basic & Contact",
"edit_tab_matrix": "Services & Vehicles",
"edit_tab_location": "Location",
"edit_tab_hours": "Opening Hours",
"edit_section_basic": "Basic Information",
"edit_section_contact": "Contact Information",
"edit_section_matrix": "3D Capability Matrix",
"edit_section_matrix_desc": "Configure which vehicle classes, service categories and specializations the provider belongs to.",
"edit_section_vehicle_classes": "Vehicle Classes",
"edit_section_vehicle_classes_desc": "Which vehicle types does the provider service?",
"edit_section_expertise_tags": "Service Categories (Expertise Tags)",
"edit_section_expertise_tags_desc": "Select the categories for the provider from the hierarchical tree.",
"edit_section_specializations": "Specializations",
"edit_section_specializations_desc": "Add special brands, propulsion types or other tags.",
"edit_section_location_extra": "Additional Location Data",
"edit_section_opening_hours": "Opening Hours",
"edit_section_opening_hours_desc": "Set the provider's opening hours broken down by day.",
"edit_field_name": "Name *",
"edit_field_category": "Category",
"edit_field_category_placeholder": "e.g. Auto Repair, Tire Service",
"edit_field_source": "Source",
"edit_field_phone": "Phone",
"edit_field_phone_placeholder": "+36 30 123 4567",
"edit_field_email": "Email",
"edit_field_email_placeholder": "info{'@'}example.com",
"edit_field_website": "Website",
"edit_field_website_placeholder": "https://...",
"edit_field_full_address": "Full Address",
"edit_field_full_address_placeholder": "Full address text",
"edit_field_plus_code": "Plus Code",
"edit_field_plus_code_placeholder": "8FVC9X8V+XV",
"edit_field_brands": "Brands",
"edit_field_brands_placeholder": "e.g. Volvo, Scania",
"edit_field_propulsion": "Propulsion",
"edit_field_propulsion_placeholder": "e.g. EV, Hybrid, Diesel",
"edit_field_add": "Add",
"edit_always_open": "24/7 opening hours",
"edit_always_open_desc": "The provider is open 24 hours every day of the week",
"edit_btn_24_7": "24/7 Continuous Hours",
"edit_btn_copy_weekdays": "Copy Weekdays (Mon → Fri)",
"edit_btn_clear_all": "Clear All",
"edit_closed": "Closed",
"edit_has_changes": "● Unsaved changes",
"edit_no_changes": "No changes",
"edit_cancel": "Cancel",
"edit_save": "Save",
"edit_toast_saved": "Provider updated successfully!",
"edit_toast_promoted": "Promoted successfully!",
"edit_toast_error": "Error saving: {message}",
"edit_copy_weekdays_open_prompt": "Enter opening time (e.g. 08:00):",
"edit_copy_weekdays_close_prompt": "Enter closing time (e.g. 17:00):",
"edit_categories_loading": "Loading categories...",
"edit_level_label": "(Level {level})",
"edit_source_label": "Source:",
"edit_trust_score_label": "Trust Score:",
"edit_raw_data_title": "Raw Data",
"edit_audit_trail_title": "Audit Trail",
"edit_rejection_reason_title": "Rejection Reason"
}
}

View File

@@ -1,31 +0,0 @@
{
"title": "Seasons",
"subtitle": "Gamification season management",
"loading": "Loading seasons...",
"error": "Failed to load seasons.",
"retry": "Retry",
"create": "New Season",
"no_items": "No seasons created yet.",
"create_first": "Create First Season",
"active": "Active",
"inactive": "Inactive",
"created_at": "Created:",
"activate": "Activate",
"edit": "Edit",
"edit_title": "Edit Season",
"create_title": "New Season",
"name": "Name",
"name_placeholder": "e.g. 2026 Q1 Season",
"start_date": "Start Date",
"end_date": "End Date",
"activate_on_create": "Activate on creation",
"cancel": "Cancel",
"save": "Save",
"create_btn": "Create",
"activate_title": "Activate Season",
"activate_confirm": "Are you sure you want to activate",
"activate_warning": "This will deactivate all other seasons.",
"activating": "Activating...",
"activate_btn": "Activate",
"save_error": "Failed to save season."
}

View File

@@ -0,0 +1,181 @@
{
"system": {
"config": {
"title": "System Config",
"subtitle": "Gamification master configuration editor",
"loading": "Loading configuration...",
"error": "Failed to load configuration.",
"last_save": "Last saved:",
"saving": "Saving...",
"save": "Save Configuration",
"section_xp": "XP Logic",
"section_conversion": "Conversion Logic",
"section_penalty": "Penalty Logic",
"section_rewards": "Level Rewards",
"calculator": "Impact Calculator",
"calculator_desc": "Adjust parameters to see estimated impact",
"estimated_results": "Estimated Results",
"daily_xp": "Daily XP",
"xp_for_level": "XP Needed for Level Up",
"social_to_credit": "Social → Credit",
"days_to_level": "Days to Level Up",
"raw_json": "Raw JSON Editor",
"apply_json": "Apply JSON",
"updated": "Configuration updated!",
"save_error": "Failed to save configuration.",
"json_applied": "JSON applied to form fields!",
"invalid_json": "Invalid JSON: "
},
"params": {
"title": "System Parameters",
"subtitle": "Gamification category system parameters",
"loading": "Loading parameters...",
"error": "Failed to load system parameters.",
"retry": "Retry",
"no_items": "No gamification system parameters.",
"key": "Key",
"value": "Value",
"category": "Category",
"scope": "Scope",
"scope_id": "Scope ID",
"actions": "Actions",
"edit": "Edit",
"edit_title": "Edit Parameter",
"value_label": "Value",
"value_placeholder": "Parameter value (JSON or plain text)",
"json_detected": "🔹 JSON format detected",
"text_value": "🔸 Text value",
"cancel": "Cancel",
"save": "Save",
"saving": "Saving...",
"invalid_json": "Invalid JSON format: ",
"save_error": "Failed to save parameter.",
"updated": "updated!"
},
"ledger": {
"title": "Points Ledger",
"subtitle": "Gamification points ledger browser",
"loading": "Loading ledger...",
"error": "Failed to load ledger.",
"user_id": "User ID",
"date_from": "Date From",
"date_to": "Date To",
"reason": "Reason",
"search": "Search",
"clear": "Clear",
"csv": "CSV",
"no_results": "No results match your filters.",
"no_results_hint": "Try different filter criteria.",
"id": "ID",
"user": "User",
"points": "Points",
"penalty": "Penalty",
"xp": "XP",
"source": "Source",
"date": "Date",
"prev": "Previous",
"next": "Next",
"of": "of",
"showing": "showing",
"filtered": "(filtered)",
"no_csv_data": "No data for CSV export.",
"csv_downloaded": "CSV download started."
},
"packages": {
"title": "Package Management",
"subtitle": "Manage subscription packages and features — Free, Premium, Enterprise",
"loading": "Loading packages...",
"retry": "Retry",
"create_new": "New Package",
"no_packages": "No packages yet",
"no_packages_desc": "Create your first subscription package to get started.",
"create_first": "Create First Package",
"popular": "Popular",
"fallback_badge": "Fallback",
"trial_badge": "Trial",
"month": "mo",
"feature_flags": "Available Features",
"edit": "Edit",
"duplicate": "Duplicate",
"delete": "Delete",
"set_as_default": "Set as Default",
"set_as_default_success": "set as default package!",
"edit_title": "Edit Package",
"create_title": "Create Package",
"cancel": "Cancel",
"save": "Save Changes",
"create": "Create",
"save_success": "Package updated successfully!",
"delete_title": "Delete Package",
"delete_confirm": "Are you sure you want to delete \"{name}\"?",
"delete_btn": "Delete",
"allowances": "Allowances",
"max_vehicles": "Max Vehicles",
"max_garages": "Max Garages",
"max_users": "Max Users",
"monthly_credits": "Monthly Credits",
"tier_level": "Level",
"form_name": "System Name",
"form_name_placeholder": "e.g. premium_2024",
"form_display_name": "Display Name",
"form_display_name_placeholder": "e.g. Premium Plus",
"form_type": "Type",
"type_private": "Private",
"type_corporate": "Corporate",
"form_tier_level": "Tier Level",
"form_tier_level_hint": "Higher number = more features and higher rank",
"form_monthly_price": "Monthly Price",
"form_yearly_price": "Yearly Price",
"form_currency": "Currency",
"form_subtitle": "Subtitle / Description",
"form_subtitle_placeholder": "e.g. Ideal for small businesses",
"form_badge": "Badge Text",
"form_badge_placeholder": "e.g. Most Popular",
"form_is_custom": "Custom Package (not public)",
"singleton_rules": "Singleton Rules",
"form_is_default_fallback": "Default Fallback Package — expired subscriptions fall back to this",
"form_trial_days": "Trial Days on Signup",
"form_trial_days_hint": "New organizations get this many free days. Only one package can have > 0.",
"per_region_pricing": "Per-Region Pricing",
"smart_calculator": "Smart Price Calculator",
"calc_net_price": "Net Price",
"calc_vat_rate": "VAT Rate",
"calc_currency": "Currency",
"calc_net": "Net",
"calc_vat": "VAT",
"calc_gross": "Gross",
"calc_apply": "Apply to selected region",
"add_zone": "Add New Zone",
"add_zone_select": "Select country code...",
"add_zone_already_exists": "This region already exists in the package pricing!"
},
"permissions": {
"title": "Permissions Management",
"subtitle": "Permission Matrix — Role-based access control",
"loading": "Loading permissions...",
"error_title": "Failed to load permissions",
"retry": "Retry",
"save_changes": "Save Changes",
"discard": "Discard",
"modified_count": "{count} changes",
"domain_filter": "Domain Filter (Rows)",
"role_filter": "Role Filter (Columns)",
"select_all": "Select All",
"deselect_all": "Deselect All",
"all_domains": "All",
"permission": "Permission",
"no_permissions": "No permissions in this domain.",
"current_tier": "Current Package",
"expires": "Expires",
"superadmin": "Superadmin",
"superadmin_desc": "Full system access — users, billing, robots and system configuration.",
"garages": "Garages",
"garages_desc": "Garage-level access — vehicle management, service booking, customer data.",
"feature_flags": "Feature Flags",
"feature_flags_desc": "Subscription features — based on your current plan ({tier}).",
"rbac_title": "RBAC Permission Matrix",
"rbac_desc": "Role-based access control — which roles can perform which admin actions.",
"action": "Action"
}
}
}

View File

@@ -1,52 +0,0 @@
{
"loading": "Loading user details...",
"retry": "Retry",
"back": "Back to Users",
"edit": "Edit User",
"edit_user": "Edit User",
"profile_tab": "Profile",
"memberships_tab": "Memberships",
"account_info": "Account Information",
"user_id": "User ID",
"registration_date": "Registration Date",
"last_login": "Last Login",
"ui_mode": "UI Mode",
"region": "Region",
"currency": "Currency",
"subscription_info": "Subscription Information",
"subscription_expires": "Expires At",
"scope_level": "Scope Level",
"scope_id": "Scope ID",
"max_vehicles": "Max Vehicles",
"max_garages": "Max Garages",
"personal_info": "Personal Information",
"last_name": "Last Name",
"first_name": "First Name",
"phone": "Phone",
"birth_place": "Birth Place",
"birth_date": "Birth Date",
"mothers_name": "Mother's Name",
"mothers_first_name": "Mother's First Name",
"address": "Address",
"zip": "ZIP Code",
"city": "City",
"street": "Street",
"house_number": "House Number",
"no_person_record": "No personal information record found for this user.",
"memberships": "Organization Memberships",
"memberships_count": "{count} membership(s)",
"no_memberships": "This user is not a member of any organization.",
"org_name": "Organization",
"org_role": "Role",
"member_status": "Status",
"joined_at": "Joined",
"verified": "Verified",
"verified_yes": "Yes",
"verified_no": "No",
"preferred_language": "Preferred Language",
"is_active": "Active",
"is_vip": "VIP",
"cancel": "Cancel",
"save": "Save Changes",
"saving": "Saving..."
}

View File

@@ -1,46 +1,221 @@
{
"title": "User Management",
"subtitle": "User list, search, filters and bulk actions",
"loading": "Loading users...",
"retry": "Retry",
"search_placeholder": "Search by email, name or phone...",
"all_statuses": "All statuses",
"status_active": "Active",
"status_inactive": "Inactive",
"status_deleted": "Deleted",
"status_banned": "Banned",
"all_roles": "All roles",
"role_user": "User",
"role_admin": "Admin",
"role_staff": "Staff",
"role_superadmin": "Superadmin",
"all_plans": "All plans",
"plan_free": "Free",
"plan_premium": "Premium",
"plan_enterprise": "Enterprise",
"total_users": "Total Users",
"active_users": "Active Users",
"deleted_users": "Deleted Users",
"banned_users": "Banned Users",
"new_today": "New Today",
"filtered_results": "Filtered results",
"selected_count": "{count} user(s) selected",
"bulk_activate": "Activate",
"bulk_deactivate": "Deactivate",
"clear_selection": "Clear",
"email": "Email",
"name": "Name",
"role": "Role",
"status": "Status",
"package": "Package",
"registration": "Registration",
"language": "Language",
"actions": "Actions",
"view": "View",
"activate": "Activate",
"deactivate": "Deactivate",
"no_results": "No users match your search.",
"showing": "Showing",
"prev": "Previous",
"next": "Next"
"users": {
"title": "User Management",
"subtitle": "User list, search, filters and bulk actions",
"loading": "Loading users...",
"retry": "Retry",
"search_placeholder": "Search by email, name or phone...",
"all_statuses": "All statuses",
"status_active": "Active",
"status_inactive": "Inactive",
"status_deleted": "Deleted",
"status_banned": "Banned",
"all_roles": "All roles",
"role_user": "User",
"role_admin": "Admin",
"role_staff": "Staff",
"role_superadmin": "Superadmin",
"all_plans": "All plans",
"plan_free": "Free",
"plan_premium": "Premium",
"plan_enterprise": "Enterprise",
"total_users": "Total Users",
"active_users": "Active Users",
"deleted_users": "Deleted Users",
"banned_users": "Banned Users",
"new_today": "New Today",
"filtered_results": "Filtered results",
"selected_count": "{count} user(s) selected",
"bulk_activate": "Activate",
"bulk_deactivate": "Deactivate",
"clear_selection": "Clear",
"email": "Email",
"name": "Name",
"role": "Role",
"status": "Status",
"package": "Package",
"registration": "Registration",
"language": "Language",
"actions": "Actions",
"view": "View",
"activate": "Activate",
"deactivate": "Deactivate",
"no_results": "No users match your search.",
"showing": "Showing",
"prev": "Previous",
"next": "Next",
"details": {
"loading": "Loading user details...",
"retry": "Retry",
"back": "Back to Users",
"edit": "Edit User",
"edit_user": "Edit User",
"profile_tab": "Profile",
"memberships_tab": "Memberships",
"account_info": "Account Information",
"user_id": "User ID",
"registration_date": "Registration Date",
"last_login": "Last Login",
"ui_mode": "UI Mode",
"region": "Region",
"currency": "Currency",
"subscription_info": "Subscription Information",
"subscription_expires": "Expires At",
"scope_level": "Scope Level",
"scope_id": "Scope ID",
"max_vehicles": "Max Vehicles",
"max_garages": "Max Garages",
"personal_info": "Personal Information",
"last_name": "Last Name",
"first_name": "First Name",
"phone": "Phone",
"birth_place": "Birth Place",
"birth_date": "Birth Date",
"mothers_name": "Mother's Name",
"mothers_first_name": "Mother's First Name",
"address": "Address",
"zip": "ZIP Code",
"city": "City",
"street": "Street",
"house_number": "House Number",
"no_person_record": "No personal information record found for this user.",
"memberships": "Organization Memberships",
"memberships_count": "{count} membership(s)",
"no_memberships": "This user is not a member of any organization.",
"org_name": "Organization",
"org_role": "Role",
"member_status": "Status",
"joined_at": "Joined",
"verified": "Verified",
"verified_yes": "Yes",
"verified_no": "No",
"preferred_language": "Preferred Language",
"is_active": "Active",
"is_vip": "VIP",
"cancel": "Cancel",
"save": "Save Changes",
"saving": "Saving...",
"danger_zone": "Danger Zone",
"danger_zone_warning": "This action is irreversible. Once you delete this user, all their data will be permanently removed.",
"danger_zone_button": "Delete User Permanently",
"danger_zone_confirm_label": "Type the user's email to confirm:",
"danger_zone_confirm_placeholder": "Enter email address...",
"danger_zone_confirm_button": "I understand, permanently delete this user",
"danger_zone_cancel": "Cancel",
"danger_zone_success": "User has been permanently deleted.",
"danger_zone_error_financial": "Cannot delete: User has financial or production records.",
"danger_zone_error_not_superadmin": "Only Superadmins can perform hard delete operations.",
"danger_zone_error_generic": "Failed to delete user: {message}"
},
"persons": {
"title": "Person Management",
"subtitle": "Person list, search, filters and details",
"loading": "Loading persons...",
"retry": "Retry",
"search_placeholder": "Search by name, phone or email...",
"all_ghost_statuses": "All ghost statuses",
"ghost_no": "Not ghost",
"ghost_yes": "Ghost",
"all_active_statuses": "All active statuses",
"active_yes": "Active",
"active_no": "Inactive",
"all_user_statuses": "All user statuses",
"has_user_yes": "Has user",
"has_user_no": "No user",
"all_merged_statuses": "All merged statuses",
"merged_no": "Not merged",
"merged_yes": "Merged",
"total_persons": "Total Persons",
"active_persons": "Active Persons",
"ghost_persons": "Ghost Persons",
"merged_persons": "Merged Persons",
"filtered_results": "Filtered results",
"name": "Name",
"phone": "Phone",
"birth_date": "Birth Date",
"status": "Status",
"users_count": "Users",
"active_user": "Active User",
"address": "Address",
"actions": "Actions",
"active": "Active",
"inactive": "Inactive",
"ghost": "Ghost",
"merged": "Merged",
"view": "View",
"no_results": "No persons match your search.",
"showing": "Showing",
"prev": "Previous",
"next": "Next",
"details": {
"loading": "Loading person details...",
"retry": "Retry",
"back": "Back to list",
"sales_agent": "Sales Agent",
"edit": "Edit",
"personal_info": "Personal Information",
"person_id": "Person ID",
"uuid": "UUID",
"last_name": "Last Name",
"first_name": "First Name",
"birth_place": "Place of Birth",
"mothers_name": "Mother's Name",
"mothers_last_name": "Mother's Last Name",
"mothers_first_name": "Mother's First Name",
"address": "Address",
"zip": "ZIP Code",
"city": "City",
"street": "Street",
"house_number": "House Number",
"stairwell": "Stairwell",
"floor": "Floor",
"door": "Door",
"parcel_id": "Parcel ID (HRSZ)",
"full_address": "Full Address",
"system_info": "System Information",
"is_sales_agent": "Sales Agent",
"lifetime_xp": "Lifetime XP",
"penalty_points": "Penalty Points",
"social_reputation": "Social Reputation",
"created_at": "Created At",
"updated_at": "Updated At",
"deleted_at": "Deleted At",
"identity_docs": "Identity Documents",
"ice_contact": "ICE Contact",
"connected_users": "Connected Users",
"users_count": "{count} user(s) connected",
"no_users": "No users connected to this person.",
"email": "Email",
"role": "Role",
"plan": "Plan",
"language": "Language",
"registered_at": "Registered At",
"memberships": "Memberships",
"memberships_count": "{count} membership(s)",
"no_memberships": "No memberships.",
"org_name": "Organization Name",
"org_type": "Type",
"org_role": "Role",
"member_status": "Status",
"verified": "Verified",
"joined_at": "Joined At",
"verified_yes": "Yes",
"verified_no": "No",
"owned_orgs": "Owned Organizations",
"owned_orgs_count": "{count} organization(s)",
"no_owned_orgs": "No owned organizations.",
"merge_history": "Merge History",
"no_merge_history": "No merge history.",
"merged_into": "Merged into",
"merged_at": "Merged At",
"edit_title": "Edit Person",
"status_section": "Status",
"is_active": "Active",
"is_ghost": "Ghost",
"cancel": "Cancel",
"saving": "Saving...",
"save": "Save"
}
}
}
}

View File

@@ -1,35 +0,0 @@
{
"title": "Kitüntetések",
"subtitle": "Badge-ek kezelése — CRUD",
"loading": "Kitüntetések betöltése...",
"error": "Nem sikerült betölteni a kitüntetéseket.",
"retry": "Újrapróbálkozás",
"create": "Új kitüntetés",
"no_items": "Még nincsenek kitüntetések.",
"id": "ID",
"name": "Név",
"description": "Leírás",
"icon": "Ikon",
"actions": "Műveletek",
"edit": "Szerkesztés",
"delete": "Törlés",
"cancel": "Mégse",
"save": "Mentés",
"create_title": "Kitüntetés létrehozása",
"edit_title": "Kitüntetés szerkesztése",
"name_placeholder": "Kitüntetés neve",
"desc_placeholder": "Kitüntetés leírása",
"icon_placeholder": "Ikon URL",
"icon_hint": "Opcionális. Az ikon URL-je a kitüntetéshez.",
"icon_preview": "Ikon előnézet",
"create_btn": "Létrehozás",
"delete_title": "Kitüntetés törlése",
"delete_confirm": "Biztosan törölni szeretnéd ezt a kitüntetést?",
"delete_btn": "Törlés",
"created": "Kitüntetés létrehozva!",
"updated": "Kitüntetés frissítve!",
"deleted": "Kitüntetés törölve!",
"save_error": "Nem sikerült menteni a kitüntetést.",
"delete_error": "Nem sikerült törölni a kitüntetést.",
"unknown_error": "Ismeretlen hiba"
}

View File

@@ -1,38 +0,0 @@
{
"title": "Versenyek",
"subtitle": "Szezonális versenyek kezelése",
"loading": "Versenyek betöltése...",
"error": "Nem sikerült betölteni a versenyeket.",
"retry": "Újrapróbálkozás",
"create": "Új Verseny",
"no_items": "Még nincsenek versenyek létrehozva.",
"create_first": "Első Verseny Létrehozása",
"season_filter": "Szezon szűrő:",
"all_seasons": "Összes szezon",
"active_badge": "(Aktív)",
"status_active": "Aktív",
"status_draft": "Draft",
"status_completed": "Befejezett",
"status_cancelled": "Törölt",
"view_rules": "Szabályok megtekintése",
"edit": "Szerkesztés",
"cancel": "Mégse",
"save": "Mentés",
"create_title": "Verseny létrehozása",
"edit_title": "Verseny szerkesztése",
"name": "Név",
"name_placeholder": "Pl. Q1 Szerviz Beküldő Verseny",
"description": "Leírás",
"desc_placeholder": "Verseny leírása...",
"season": "Szezon",
"select_season": "Válassz szezont",
"start_date": "Kezdő dátum",
"end_date": "Záró dátum",
"status": "Státusz",
"rules": "Szabályok (JSON)",
"rules_placeholder": "type: service_submission, points_multiplier: 1.5",
"invalid_json": "Érvénytelen JSON formátum!",
"create_btn": "Létrehozás",
"season_id_label": "Szezon ID:",
"save_error": "Hiba történt a mentés során."
}

View File

@@ -1,26 +0,0 @@
{
"title": "Rendszer Konfig",
"subtitle": "Gamification master konfiguráció szerkesztése",
"loading": "Konfiguráció betöltése...",
"error": "Nem sikerült betölteni a konfigurációt.",
"last_save": "Utolsó mentés:",
"saving": "Mentés...",
"save": "Konfiguráció mentése",
"section_xp": "XP Logika",
"section_conversion": "Konverziós Logika",
"section_penalty": "Büntetési Logika",
"section_rewards": "Szint Jutalmak",
"calculator": "Hatás Kalkulátor",
"calculator_desc": "Állítsd be a paramétereket a becsült hatás megtekintéséhez",
"estimated_results": "Becsült Eredmények",
"daily_xp": "Napi XP",
"xp_for_level": "Szintlépéshez Szükséges XP",
"social_to_credit": "Social → Credit",
"days_to_level": "Szintlépés Napok Száma",
"raw_json": "Nyers JSON Szerkesztő",
"apply_json": "JSON Alkalmazása",
"updated": "Konfiguráció frissítve!",
"save_error": "Hiba történt a mentés során.",
"json_applied": "JSON alkalmazva a form mezőkre!",
"invalid_json": "Érvénytelen JSON: "
}

View File

@@ -1,23 +1,25 @@
{
"title": "Gamification HQ",
"subtitle": "Gamification rendszer áttekintő irányítópultja",
"loading": "Dashboard betöltése...",
"error": "Nem sikerült betölteni a dashboard adatokat.",
"total_users": "Összes Felhasználó",
"active_season": "Aktív Szezon",
"pending_contributions": "Függő Hozzájárulások",
"xp_earned_today": "Ma Szerzett XP",
"none": "Nincs",
"quick_actions": "Gyors Műveletek",
"manage_point_rules": "Pontszabályok kezelése",
"manage_badges": "Kitüntetések kezelése",
"manage_seasons": "Szezonok kezelése",
"recent_ledger": "Legutóbbi Pontnapló Bejegyzések",
"no_ledger": "Még nincsenek pontnapló bejegyzések.",
"top_5": "Top 5 Ranglista",
"full_leaderboard": "Teljes ranglista",
"no_leaderboard": "Még nincsenek ranglista adatok.",
"level": "Szint",
"xp": "XP",
"points": "pont"
"dashboard": {
"title": "Gamification HQ",
"subtitle": "Gamification rendszer áttekintő irányítópultja",
"loading": "Dashboard betöltése...",
"error": "Nem sikerült betölteni a dashboard adatokat.",
"total_users": "Összes Felhasználó",
"active_season": "Aktív Szezon",
"pending_contributions": "Függő Hozzájárulások",
"xp_earned_today": "Ma Szerzett XP",
"none": "Nincs",
"quick_actions": "Gyors Műveletek",
"manage_point_rules": "Pontszabályok kezelése",
"manage_badges": "Kitüntetések kezelése",
"manage_seasons": "Szezonok kezelése",
"recent_ledger": "Legutóbbi Pontnapló Bejegyzések",
"no_ledger": "Még nincsenek pontnapló bejegyzések.",
"top_5": "Top 5 Ranglista",
"full_leaderboard": "Teljes ranglista ",
"no_leaderboard": "Még nincsenek ranglista adatok.",
"level": "Szint",
"xp": "XP",
"points": "pont"
}
}

View File

@@ -0,0 +1,304 @@
{
"gamification": {
"badges": {
"title": "Kitüntetések",
"subtitle": "Badge-ek kezelése — CRUD",
"loading": "Kitüntetések betöltése...",
"error": "Nem sikerült betölteni a kitüntetéseket.",
"retry": "Újrapróbálkozás",
"create": "Új kitüntetés",
"no_items": "Még nincsenek kitüntetések.",
"id": "ID",
"name": "Név",
"description": "Leírás",
"icon": "Ikon",
"actions": "Műveletek",
"edit": "Szerkesztés",
"delete": "Törlés",
"cancel": "Mégse",
"save": "Mentés",
"create_title": "Kitüntetés létrehozása",
"edit_title": "Kitüntetés szerkesztése",
"name_placeholder": "Kitüntetés neve",
"desc_placeholder": "Kitüntetés leírása",
"icon_placeholder": "Ikon URL",
"icon_hint": "Opcionális. Az ikon URL-je a kitüntetéshez.",
"icon_preview": "Ikon előnézet",
"create_btn": "Létrehozás",
"delete_title": "Kitüntetés törlése",
"delete_confirm": "Biztosan törölni szeretnéd ezt a kitüntetést?",
"delete_btn": "Törlés",
"created": "Kitüntetés létrehozva!",
"updated": "Kitüntetés frissítve!",
"deleted": "Kitüntetés törölve!",
"save_error": "Nem sikerült menteni a kitüntetést.",
"delete_error": "Nem sikerült törölni a kitüntetést.",
"unknown_error": "Ismeretlen hiba"
},
"levels": {
"title": "Szintek",
"subtitle": "Szint konfigurációk kezelése — CRUD",
"loading": "Szintek betöltése...",
"error": "Nem sikerült betölteni a szint konfigurációkat.",
"retry": "Újrapróbálkozás",
"create": "Új szint",
"no_items": "Még nincsenek szint konfigurációk.",
"level": "Szint",
"rank": "Rang",
"min_points": "Min. Pont",
"type": "Típus",
"actions": "Műveletek",
"penalty": "Büntető",
"normal": "Normál",
"tree_diagram": "Szint Fa Diagram",
"no_tree_data": "Nincsenek szintek megjelenítéshez.",
"points": "pont",
"edit_title": "Szint szerkesztése",
"create_title": "Szint létrehozása",
"level_number": "Szint Száma",
"rank_name": "Rang Neve",
"min_points_label": "Minimum Pont",
"is_penalty": "Büntető szint",
"cancel": "Mégse",
"save": "Mentés",
"saving": "Mentés...",
"updated": "Szint frissítve!",
"created": "Szint létrehozva!",
"duplicate_level": "Ezzel a szint számmal már létezik konfiguráció.",
"save_error": "Hiba történt a mentés során."
},
"point_rules": {
"title": "Pontszabályok",
"subtitle": "Gamification pontszabályok kezelése — CRUD",
"loading": "Pontszabályok betöltése...",
"error": "Nem sikerült betölteni a pontszabályokat.",
"retry": "Újrapróbálkozás",
"create": "Új pontszabály",
"no_items": "Még nincsenek pontszabályok. Hozz létre egyet a fenti gombbal!",
"id": "ID",
"action_key": "Akció Kulcs",
"points": "Pont",
"description": "Leírás",
"status": "Státusz",
"actions": "Műveletek",
"active": "Aktív",
"inactive": "Inaktív",
"edit": "Szerkesztés",
"delete": "Törlés (soft-delete)",
"edit_title": "Pontszabály szerkesztése",
"create_title": "Új pontszabály",
"action_key_label": "Akció Kulcs",
"action_key_placeholder": "pl. service_submitted",
"points_label": "Pontérték",
"points_placeholder": "0",
"description_label": "Leírás",
"description_placeholder": "Rövid leírás a szabályról...",
"is_active": "Aktív",
"cancel": "Mégse",
"save": "Mentés",
"saving": "Mentés...",
"updated": "Pontszabály frissítve!",
"created": "Pontszabály létrehozva!",
"deleted": "Pontszabály deaktiválva!",
"duplicate_key": "Egy szabály ezzel a kulccsal már létezik.",
"save_error": "Nem sikerült menteni a pontszabályt.",
"delete_title": "Pontszabály törlése",
"delete_confirm": "Biztosan deaktiválod a következő szabályt:",
"delete_btn": "Törlés",
"deleting": "Törlés..."
},
"seasons": {
"title": "Szezonok",
"subtitle": "Gamification szezonkezelés",
"loading": "Szezonok betöltése...",
"error": "Nem sikerült betölteni a szezonokat.",
"retry": "Újra",
"create": "Új Szezon",
"no_items": "Még nincsenek szezonok létrehozva.",
"create_first": "Első Szezon Létrehozása",
"active": "Aktív",
"inactive": "Inaktív",
"created_at": "Létrehozva:",
"activate": "Aktiválás",
"edit": "Szerkesztés",
"edit_title": "Szezon szerkesztése",
"create_title": "Új Szezon",
"name": "Név",
"name_placeholder": "pl. 2026 Q1 Szezon",
"start_date": "Kezdő dátum",
"end_date": "Záró dátum",
"activate_on_create": "Aktiválás létrehozáskor",
"cancel": "Mégse",
"save": "Mentés",
"create_btn": "Létrehozás",
"activate_title": "Szezon aktiválása",
"activate_confirm": "Biztosan aktiválni szeretnéd",
"activate_warning": "Ez deaktiválja az összes többi szezont.",
"activating": "Aktiválás...",
"activate_btn": "Aktiválás",
"save_error": "Nem sikerült menteni a szezont."
},
"competitions": {
"title": "Versenyek",
"subtitle": "Szezonális versenyek kezelése",
"loading": "Versenyek betöltése...",
"error": "Nem sikerült betölteni a versenyeket.",
"retry": "Újrapróbálkozás",
"create": "Új Verseny",
"no_items": "Még nincsenek versenyek létrehozva.",
"create_first": "Első Verseny Létrehozása",
"season_filter": "Szezon szűrő:",
"all_seasons": "Összes szezon",
"active_badge": "(Aktív)",
"status_active": "Aktív",
"status_draft": "Draft",
"status_completed": "Befejezett",
"status_cancelled": "Törölt",
"view_rules": "Szabályok megtekintése",
"edit": "Szerkesztés",
"cancel": "Mégse",
"save": "Mentés",
"create_title": "Verseny létrehozása",
"edit_title": "Verseny szerkesztése",
"name": "Név",
"name_placeholder": "Pl. Q1 Szerviz Beküldő Verseny",
"description": "Leírás",
"desc_placeholder": "Verseny leírása...",
"season": "Szezon",
"select_season": "Válassz szezont",
"start_date": "Kezdő dátum",
"end_date": "Záró dátum",
"status": "Státusz",
"rules": "Szabályok (JSON)",
"rules_placeholder": "type: service_submission, points_multiplier: 1.5",
"invalid_json": "Érvénytelen JSON formátum!",
"create_btn": "Létrehozás",
"season_id_label": "Szezon ID:",
"save_error": "Hiba történt a mentés során."
},
"leaderboard": {
"title": "Ranglista",
"subtitle": "Gamification ranglista admin nézet",
"search": "Keresés",
"level": "Szint",
"min_xp": "Minimum XP",
"sort": "Rendezés",
"sort_xp": "XP szerint",
"sort_points": "Pontok szerint",
"sort_social": "Szociális pontok szerint",
"sort_level": "Szint szerint",
"filter": "Szűrés",
"reset": "Visszaállítás",
"descending": "Csökkenő",
"ascending": "Növekvő",
"user": "felhasználó",
"loading": "Ranglista betöltése...",
"error": "Nem sikerült betölteni a ranglistát.",
"retry": "Újrapróbálkozás",
"no_results": "Nincs találat a megadott szűrőkkel.",
"no_results_hint": "Próbálj más szűrési feltételeket használni.",
"user_col": "Felhasználó",
"email": "Email",
"xp": "XP",
"points": "Pontok",
"social": "Szociális",
"penalty": "Büntetés",
"restriction": "Restrikció",
"discoveries": "Felfedezések",
"services": "Szolgáltatások",
"updated": "Utolsó módosítás",
"actions": "Műveletek",
"details": "Részletek",
"prev": "Előző",
"next": "Következő",
"page_of": "/ oldal",
"restriction_mild": "Enyhe",
"restriction_moderate": "Közepes",
"restriction_severe": "Súlyos"
},
"users": {
"title": "Gamification Felhasználók",
"subtitle": "Felhasználói gamification statisztikák kezelése",
"loading": "Felhasználók betöltése...",
"error": "Nem sikerült betölteni a felhasználói statisztikákat.",
"retry": "Újra",
"no_results": "Nincsenek megjeleníthető felhasználói statisztikák.",
"level": "Szint",
"all_levels": "Minden Szint",
"level_n": "{n}. szint",
"min_xp": "Minimum XP",
"max_xp": "Maximum XP",
"penalty": "Büntetés",
"any": "Bármelyik",
"only_penalized": "Csak büntetettek",
"only_clean": "Csak tiszták",
"filter": "Szűrés",
"reset": "Visszaállítás",
"count": "felhasználó",
"user_id": "Felhasználó ID",
"xp": "XP",
"points": "Pontok",
"restriction": "Korlátozás",
"services": "Szolgáltatások",
"discoveries": "Felfedezések",
"updated": "Utolsó frissítés",
"actions": "Műveletek",
"details": "Részletek",
"prev": "Előző",
"next": "Következő",
"none": "Nincs",
"restriction_mild": "Enyhe",
"restriction_moderate": "Mérsékelt",
"restriction_severe": "Súlyos",
"user_detail": {
"back": "Vissza a listához",
"title": "Felhasználó Gamification Részletei",
"id_label": "ID:",
"loading": "Felhasználó betöltése...",
"error": "Nem sikerült betölteni a felhasználói adatokat.",
"retry": "Újra",
"not_found": "Felhasználó nem található.",
"total_xp": "Összes XP",
"level": "Szint",
"total_points": "Összes Pont",
"social_points": "Szociális Pontok",
"penalty_points": "Büntető Pontok",
"restriction_level": "Korlátozás Szintje",
"penalty_quota": "Büntetési Kvóta",
"banned_until": "Kitiltva eddig:",
"no": "Nincs",
"services": "Szolgáltatások",
"discovered_places": "Felfedezett Helyek",
"validated_places": "Validált Helyek",
"added_providers": "Hozzáadott Szolgáltatók",
"penalty_form_title": "Büntetés Kiosztása",
"penalty_points_label": "Büntető Pontok",
"penalty_reason_label": "Indok",
"penalty_reason_placeholder": "Büntetés indoka...",
"penalty_submit": "Büntetés Kiosztása",
"penalty_submitting": "Küldés...",
"penalty_success": "Büntetés sikeresen kiosztva: {amount} pont.",
"penalty_error": "Nem sikerült kiosztani a büntetést.",
"reward_form_title": "Jutalom Kiosztása",
"reward_xp_label": "XP Jutalom",
"reward_social_label": "Szociális Pont Jutalom",
"reward_reason_label": "Indok",
"reward_reason_placeholder": "Jutalom indoka...",
"reward_submit": "Jutalom Kiosztása",
"reward_submitting": "Küldés...",
"reward_success": "Jutalom sikeresen kiosztva: {xp} XP, {social} szociális pont.",
"reward_error": "Nem sikerült kiosztani a jutalmat.",
"ledger_title": "Pont Napló",
"ledger_count": "bejegyzés",
"ledger_loading": "Betöltés...",
"ledger_empty": "Még nincsenek naplóbejegyzések ehhez a felhasználóhoz.",
"ledger_date": "Dátum",
"ledger_points": "Pontok",
"ledger_penalty": "Büntetés",
"ledger_xp": "XP",
"ledger_reason": "Indok",
"ledger_source": "Forrás"
}
}
}
}

View File

@@ -1,49 +0,0 @@
{
"back": "Vissza a listához",
"title": "Felhasználó Gamification Részletei",
"id_label": "ID:",
"loading": "Felhasználó betöltése...",
"error": "Nem sikerült betölteni a felhasználói adatokat.",
"retry": "Újra",
"not_found": "Felhasználó nem található.",
"total_xp": "Összes XP",
"level": "Szint",
"total_points": "Összes Pont",
"social_points": "Szociális Pontok",
"penalty_points": "Büntető Pontok",
"restriction_level": "Korlátozás Szintje",
"penalty_quota": "Büntetési Kvóta",
"banned_until": "Kitiltva eddig:",
"no": "Nincs",
"services": "Szolgáltatások",
"discovered_places": "Felfedezett Helyek",
"validated_places": "Validált Helyek",
"added_providers": "Hozzáadott Szolgáltatók",
"penalty_form_title": "Büntetés Kiosztása",
"penalty_points_label": "Büntető Pontok",
"penalty_reason_label": "Indok",
"penalty_reason_placeholder": "Büntetés indoka...",
"penalty_submit": "Büntetés Kiosztása",
"penalty_submitting": "Küldés...",
"penalty_success": "Büntetés sikeresen kiosztva: {amount} pont.",
"penalty_error": "Nem sikerült kiosztani a büntetést.",
"reward_form_title": "Jutalom Kiosztása",
"reward_xp_label": "XP Jutalom",
"reward_social_label": "Szociális Pont Jutalom",
"reward_reason_label": "Indok",
"reward_reason_placeholder": "Jutalom indoka...",
"reward_submit": "Jutalom Kiosztása",
"reward_submitting": "Küldés...",
"reward_success": "Jutalom sikeresen kiosztva: {xp} XP, {social} szociális pont.",
"reward_error": "Nem sikerült kiosztani a jutalmat.",
"ledger_title": "Pont Napló",
"ledger_count": "bejegyzés",
"ledger_loading": "Betöltés...",
"ledger_empty": "Még nincsenek naplóbejegyzések ehhez a felhasználóhoz.",
"ledger_date": "Dátum",
"ledger_points": "Pontok",
"ledger_penalty": "Büntetés",
"ledger_xp": "XP",
"ledger_reason": "Indok",
"ledger_source": "Forrás"
}

View File

@@ -1,35 +0,0 @@
{
"title": "Gamification Felhasználók",
"subtitle": "Felhasználói gamification statisztikák kezelése",
"loading": "Felhasználók betöltése...",
"error": "Nem sikerült betölteni a felhasználói statisztikákat.",
"retry": "Újra",
"no_results": "Nincsenek megjeleníthető felhasználói statisztikák.",
"level": "Szint",
"all_levels": "Minden Szint",
"level_n": "{n}. szint",
"min_xp": "Minimum XP",
"max_xp": "Maximum XP",
"penalty": "Büntetés",
"any": "Bármelyik",
"only_penalized": "Csak büntetettek",
"only_clean": "Csak tiszták",
"filter": "Szűrés",
"reset": "Visszaállítás",
"count": "felhasználó",
"user_id": "Felhasználó ID",
"xp": "XP",
"points": "Pontok",
"restriction": "Korlátozás",
"services": "Szolgáltatások",
"discoveries": "Felfedezések",
"updated": "Utolsó frissítés",
"actions": "Műveletek",
"details": "Részletek",
"prev": "Előző",
"next": "Következő",
"none": "Nincs",
"restriction_mild": "Enyhe",
"restriction_moderate": "Mérsékelt",
"restriction_severe": "Súlyos"
}

View File

@@ -1,24 +0,0 @@
{
"ltv": "Élettartam Érték (LTV)",
"mrr": "Havi Bevétel (MRR)",
"monthly_recurring": "Havi ismétlődő bevétel",
"outstanding": "Kintlévőség",
"all_settled": "Minden számla rendezve",
"earned_credits": "Szerzett Kreditek",
"contribution_xp": "Platform építésével gyűjtött XP",
"invited_companies": "Meghívott Cégek",
"companies_joined": "Cég csatlakozott a meghívásodra",
"validated_garages": "Validált Garázsok",
"garages_confirmed": "Garázs sikeresen hitelesítve",
"utilization": "Kihasználtság",
"vehicle_quota": "Jármű Kvóta",
"employee_quota": "Alkalmazotti Kvóta",
"utilized": "kihasználva",
"marketplace_engagement": "Piactér & Aktivitás",
"avg_rating": "Átlagos Értékelés",
"reviews": "Értékelések",
"reviews_count": "értékelés",
"last_activity": "Utolsó Aktivitás",
"last_login_mock": "2 órája",
"services_30d": "Elvégzett Szervizek (30 nap)"
}

View File

@@ -1,83 +0,0 @@
{
"loading": "Garázs adatainak betöltése...",
"retry": "Újra",
"back": "Vissza a garázsokhoz",
"company_info": "Cég adatok",
"company_name": "Cégnév",
"display_name": "Megjelenítési név",
"org_type": "Szervezet típusa",
"tax_number": "Adószám",
"reg_number": "Cégjegyzékszám",
"created_at": "Létrehozva",
"address": "Cím",
"subscription_info": "Előfizetés státusza",
"tier_name": "Csomag",
"tier_level": "Szint",
"level_n": "{n}. szint",
"expires_at": "Lejárat",
"asset_limit": "Járműkorlát",
"vehicles": "jármű",
"no_subscription": "Nincs aktív előfizetés",
"contact_info": "Elérhetőség",
"contact_name": "Kapcsolattartó neve",
"contact_role": "Szerepkör",
"contact_department": "Osztály",
"contact_phone": "Kapcsolattartó telefon",
"no_contact": "Nincs elsődleges kapcsolattartó",
"edit_details": "Adatok Szerkesztése",
"save": "Mentés",
"generalTab": "Általános",
"employeesTab": "Dolgozók",
"fleetTab": "Flotta",
"analyticsTab": "Analitika",
"subscriptionTab": "Előfizetés",
"editBasicTab": "Alapadatok",
"editContactTab": "Kapcsolat",
"editAddressTab": "Címek",
"zip": "Irányítószám",
"city": "Város",
"street_name": "Utca",
"street_type": "Utca típusa",
"house_number": "Házszám",
"coming_soon": "Ez a funkció hamarosan elérhető lesz...",
"missing_data_title": "Hiányzó adatok",
"missing_data_desc": "A garázs profilja hiányos. Kérjük, egészítse ki a hiányzó adatokat.",
"missing_data_activation_required": "A garázs aktiválásához az alábbi adatok pótlása kötelező:",
"missing_tax_number": "Adószám",
"missing_billing": "Számlázási cím",
"missing_contact_email": "Kapcsolattartó e-mail",
"missing_contact_phone": "Kapcsolattartó telefon",
"missing_data_count": "{count} mező hiányzik",
"contact_person_name": "Kapcsolattartó neve",
"contact_email": "Kapcsolattartó e-mail",
"billing_address": "Számlázási cím",
"billing_zip": "Irányítószám",
"billing_city": "Város",
"billing_street_name": "Utca",
"billing_street_type": "Utca típusa",
"billing_house_number": "Házszám",
"notification_address": "Értesítési cím",
"notification_zip": "Irányítószám",
"notification_city": "Város",
"notification_street_name": "Utca",
"notification_street_type": "Utca típusa",
"notification_house_number": "Házszám",
"tab_basic": "Alapadatok",
"tab_contact": "Kapcsolat",
"tab_addresses": "Címek",
"basic_info": "Alapadatok",
"contact_section": "Kapcsolattartó",
"addresses_section": "Címek",
"vehicles_used": "Járművek",
"branches_used": "Telephelyek",
"employees_used": "Dolgozók",
"branches": "telephely",
"employees": "dolgozó",
"status": "Státusz",
"subscription_history": "Előfizetési Előzmények",
"history_date": "Dátum",
"history_package": "Csomag",
"history_action": "Művelet",
"history_status": "Státusz",
"no_subscription_history": "Még nincsenek előfizetési előzmények."
}

View File

@@ -1,37 +0,0 @@
{
"title": "Dolgozók",
"total_count": "Összesen {count} fő",
"name": "Név",
"email_phone": "E-mail / Telefon",
"role": "Szerepkör",
"status": "Státusz",
"actions": "Műveletek",
"edit_role": "Szerepkör szerkesztése",
"remove": "Eltávolítás",
"no_employees": "Még nincsenek tagok ehhez a garázshoz.",
"edit_role_title": "Tag szerepkörének szerkesztése",
"editRoleTitle": "Tag szerepkörének szerkesztése",
"editRoleFor": "{name} szerepkörének módosítása",
"cancel": "Mégse",
"save": "Mentés",
"saveRole": "Szerepkör mentése",
"saving": "Mentés...",
"status_active": "Aktív",
"status_inactive": "Inaktív",
"remove_title": "Tag eltávolítása",
"removeTitle": "Tag eltávolítása",
"remove_confirm": "Biztosan eltávolítod {name} tagot a garázsból?",
"removeConfirm": "Biztosan eltávolítod {name} tagot a garázsból?",
"remove_btn": "Eltávolítás",
"removing": "Eltávolítás...",
"add_employee": "Új dolgozó hozzáadása",
"addTitle": "Új dolgozó hozzáadása",
"email": "E-mail cím",
"emailPlaceholder": "Add meg az e-mail címet...",
"roleMember": "Tag",
"roleManager": "Menedzser",
"roleAdmin": "Admin",
"roleOwner": "Tulajdonos",
"add": "Hozzáadás",
"adding": "Hozzáadás..."
}

View File

@@ -1,13 +0,0 @@
{
"title": "Flotta",
"total_vehicles": "Összesen {count} jármű",
"plate": "Rendszám",
"brand": "Márka",
"model": "Modell",
"brand_model": "Márka & Modell",
"year": "Évjárat",
"status": "Státusz",
"vin": "Alvázszám",
"no_vehicles": "Ehhez a garázshoz még nincsenek járművek rendelve.",
"no_fleet_access": "Nincs jogosultságod a flotta adatok megtekintéséhez."
}

View File

@@ -1,53 +1,212 @@
{
"title": "Garázsok CRM",
"subtitle": "Garázsok listája, csomagkezelés és státuszmódosítás",
"total_garages": "Összes Garázs",
"private_garages": "Privát Garázsok",
"corporate_garages": "Céges Garázsok",
"search_placeholder": "Keresés név, kapcsolattartó vagy e-mail alapján...",
"all_tiers": "Összes csomag",
"all_types": "Összes típus",
"type_individual": "Privát (Egyéni)",
"type_corporate": "Céges (Vállalati)",
"company_name": "Cégnév",
"email": "E-mail",
"status": "Státusz",
"current_package": "Aktuális Csomag",
"expiration_date": "Lejárat Dátuma",
"actions": "Műveletek",
"active": "Aktív",
"inactive": "Inaktív",
"suspended": "Felfüggesztve",
"change_package": "Csomag Módosítása",
"manage_subscription": "Előfizetés Kezelése",
"view": "Megtekintés",
"activate": "Aktiválás",
"deactivate": "Deaktiválás",
"no_results": "Nincs a keresésnek megfelelő garázs.",
"loading": "Garázsok betöltése...",
"retry": "Újra",
"members": "tag",
"free_fallback": "Ingyenes / Visszaesési",
"expires": "Lejárat",
"select_package": "Csomag Kiválasztása",
"select_package_placeholder": "Válassz egy előfizetési csomagot...",
"custom_expiration": "Egyéni Lejárati Dátum",
"optional": "opcionális",
"custom_expiration_hint": "Hagyd üresen az alapértelmezett időtartamhoz (pl. 30 nap). 2-5 éves B2B deal-eknél adj meg egyedi dátumot!",
"cancel": "Mégse",
"save": "Mentés",
"saving": "Mentés...",
"subscription_updated": "előfizetése sikeresen frissítve!",
"view_details": "Részletek",
"indefinite": "Határozatlan",
"addons_title": "Kiegészítők (Add-ons)",
"addon_vehicles": "Extra Jármű",
"addon_branches": "Extra Telephely",
"addon_users": "Extra Dolgozó",
"active_addons": "Aktív kiegészítők",
"no_active_addons": "Nincsenek aktív kiegészítők",
"addon_vehicles_expiration": "Extra Jármű lejárati dátuma",
"addon_branches_expiration": "Extra Telephely lejárati dátuma",
"addon_users_expiration": "Extra Dolgozó lejárati dátuma",
"addon_expiration_hint": "Ha üres, a meglévő lejárati dátumok megmaradnak."
"garages": {
"title": "Garázsok CRM",
"subtitle": "Garázsok listája, csomagkezelés és státuszmódosítás",
"total_garages": "Összes Garázs",
"private_garages": "Privát Garázsok",
"corporate_garages": "Céges Garázsok",
"search_placeholder": "Keresés név, kapcsolattartó vagy e-mail alapján...",
"all_tiers": "Összes csomag",
"all_types": "Összes típus",
"type_individual": "Privát (Egyéni)",
"type_corporate": "Céges (Vállalati)",
"company_name": "Cégnév",
"email": "E-mail",
"status": "Státusz",
"current_package": "Aktuális Csomag",
"expiration_date": "Lejárat Dátuma",
"actions": "Műveletek",
"active": "Aktív",
"inactive": "Inaktív",
"suspended": "Felfüggesztve",
"change_package": "Csomag Módosítása",
"manage_subscription": "Előfizetés Kezelése",
"view": "Megtekintés",
"activate": "Aktiválás",
"deactivate": "Deaktiválás",
"no_results": "Nincs a keresésnek megfelelő garázs.",
"loading": "Garázsok betöltése...",
"retry": "Újra",
"members": "tag",
"free_fallback": "Ingyenes / Visszaesési",
"expires": "Lejárat",
"select_package": "Csomag Kiválasztása",
"select_package_placeholder": "Válassz egy előfizetési csomagot...",
"custom_expiration": "Egyéni Lejárati Dátum",
"optional": "opcionális",
"custom_expiration_hint": "Hagyd üresen az alapértelmezett időtartamhoz (pl. 30 nap). 2-5 éves B2B deal-eknél adj meg egyedi dátumot!",
"cancel": "Mégse",
"save": "Mentés",
"saving": "Mentés...",
"subscription_updated": "előfizetése sikeresen frissítve!",
"view_details": "Részletek",
"indefinite": "Határozatlan",
"addons_title": "Kiegészítők (Add-ons)",
"addon_vehicles": "Extra Jármű",
"addon_branches": "Extra Telephely",
"addon_users": "Extra Dolgozó",
"active_addons": "Aktív kiegészítők",
"no_active_addons": "Nincsenek aktív kiegészítők",
"addon_vehicles_expiration": "Extra Jármű lejárati dátuma",
"addon_branches_expiration": "Extra Telephely lejárati dátuma",
"addon_users_expiration": "Extra Dolgozó lejárati dátuma",
"addon_expiration_hint": "Ha üres, a meglévő lejárati dátumok megmaradnak.",
"details": {
"loading": "Garázs adatainak betöltése...",
"retry": "Újra",
"back": "Vissza a garázsokhoz",
"company_info": "Cég adatok",
"company_name": "Cégnév",
"display_name": "Megjelenítési név",
"org_type": "Szervezet típusa",
"tax_number": "Adószám",
"reg_number": "Cégjegyzékszám",
"created_at": "Létrehozva",
"address": "Cím",
"subscription_info": "Előfizetés státusza",
"tier_name": "Csomag",
"tier_level": "Szint",
"level_n": "{n}. szint",
"expires_at": "Lejárat",
"asset_limit": "Járműkorlát",
"vehicles": "jármű",
"no_subscription": "Nincs aktív előfizetés",
"contact_info": "Elérhetőség",
"contact_name": "Kapcsolattartó neve",
"contact_role": "Szerepkör",
"contact_department": "Osztály",
"contact_phone": "Kapcsolattartó telefon",
"no_contact": "Nincs elsődleges kapcsolattartó",
"edit_details": "Adatok Szerkesztése",
"save": "Mentés",
"generalTab": "Általános",
"employeesTab": "Dolgozók",
"fleetTab": "Flotta",
"analyticsTab": "Analitika",
"subscriptionTab": "Előfizetés",
"editBasicTab": "Alapadatok",
"editContactTab": "Kapcsolat",
"editAddressTab": "Címek",
"zip": "Irányítószám",
"city": "Város",
"street_name": "Utca",
"street_type": "Utca típusa",
"house_number": "Házszám",
"coming_soon": "Ez a funkció hamarosan elérhető lesz...",
"missing_data_title": "Hiányzó adatok",
"missing_data_desc": "A garázs profilja hiányos. Kérjük, egészítse ki a hiányzó adatokat.",
"missing_data_activation_required": "A garázs aktiválásához az alábbi adatok pótlása kötelező:",
"missing_tax_number": "Adószám",
"missing_billing": "Számlázási cím",
"missing_contact_email": "Kapcsolattartó e-mail",
"missing_contact_phone": "Kapcsolattartó telefon",
"missing_data_count": "{count} mező hiányzik",
"contact_person_name": "Kapcsolattartó neve",
"contact_email": "Kapcsolattartó e-mail",
"billing_address": "Számlázási cím",
"billing_zip": "Irányítószám",
"billing_city": "Város",
"billing_street_name": "Utca",
"billing_street_type": "Utca típusa",
"billing_house_number": "Házszám",
"notification_address": "Értesítési cím",
"notification_zip": "Irányítószám",
"notification_city": "Város",
"notification_street_name": "Utca",
"notification_street_type": "Utca típusa",
"notification_house_number": "Házszám",
"tab_basic": "Alapadatok",
"tab_contact": "Kapcsolat",
"tab_addresses": "Címek",
"basic_info": "Alapadatok",
"contact_section": "Kapcsolattartó",
"addresses_section": "Címek",
"vehicles_used": "Járművek",
"branches_used": "Telephelyek",
"employees_used": "Dolgozók",
"branches": "telephely",
"employees": "dolgozó",
"status": "Státusz",
"subscription_history": "Előfizetési Előzmények",
"history_date": "Dátum",
"history_package": "Csomag",
"history_action": "Művelet",
"history_status": "Státusz",
"no_subscription_history": "Még nincsenek előfizetési előzmények."
},
"employees": {
"title": "Dolgozók",
"total_count": "Összesen {count} fő",
"name": "Név",
"email_phone": "E-mail / Telefon",
"role": "Szerepkör",
"status": "Státusz",
"actions": "Műveletek",
"edit_role": "Szerepkör szerkesztése",
"remove": "Eltávolítás",
"no_employees": "Még nincsenek tagok ehhez a garázshoz.",
"edit_role_title": "Tag szerepkörének szerkesztése",
"editRoleTitle": "Tag szerepkörének szerkesztése",
"editRoleFor": "{name} szerepkörének módosítása",
"cancel": "Mégse",
"save": "Mentés",
"saveRole": "Szerepkör mentése",
"saving": "Mentés...",
"status_active": "Aktív",
"status_inactive": "Inaktív",
"remove_title": "Tag eltávolítása",
"removeTitle": "Tag eltávolítása",
"remove_confirm": "Biztosan eltávolítod {name} tagot a garázsból?",
"removeConfirm": "Biztosan eltávolítod {name} tagot a garázsból?",
"remove_btn": "Eltávolítás",
"removing": "Eltávolítás...",
"add_employee": "Új dolgozó hozzáadása",
"addTitle": "Új dolgozó hozzáadása",
"email": "E-mail cím",
"emailPlaceholder": "Add meg az e-mail címet...",
"roleMember": "Tag",
"roleManager": "Menedzser",
"roleAdmin": "Admin",
"roleOwner": "Tulajdonos",
"add": "Hozzáadás",
"adding": "Hozzáadás..."
},
"fleet": {
"title": "Flotta",
"total_vehicles": "Összesen {count} jármű",
"plate": "Rendszám",
"brand": "Márka",
"model": "Modell",
"brand_model": "Márka & Modell",
"year": "Évjárat",
"status": "Státusz",
"vin": "Alvázszám",
"no_vehicles": "Ehhez a garázshoz még nincsenek járművek rendelve.",
"no_fleet_access": "Nincs jogosultságod a flotta adatok megtekintéséhez."
},
"analytics": {
"ltv": "Élettartam Érték (LTV)",
"mrr": "Havi Bevétel (MRR)",
"monthly_recurring": "Havi ismétlődő bevétel",
"outstanding": "Kintlévőség",
"all_settled": "Minden számla rendezve",
"earned_credits": "Szerzett Kreditek",
"contribution_xp": "Platform építésével gyűjtött XP",
"invited_companies": "Meghívott Cégek",
"companies_joined": "Cég csatlakozott a meghívásodra",
"validated_garages": "Validált Garázsok",
"garages_confirmed": "Garázs sikeresen hitelesítve",
"utilization": "Kihasználtság",
"vehicle_quota": "Jármű Kvóta",
"employee_quota": "Alkalmazotti Kvóta",
"utilized": "kihasználva",
"marketplace_engagement": "Piactér & Aktivitás",
"avg_rating": "Átlagos Értékelés",
"reviews": "Értékelések",
"reviews_count": "értékelés",
"last_activity": "Utolsó Aktivitás",
"last_login_mock": "2 órája",
"services_30d": "Elvégzett Szervizek (30 nap)"
}
}
}

View File

@@ -1,40 +0,0 @@
{
"title": "Ranglista",
"subtitle": "Gamification ranglista admin nézet",
"search": "Keresés",
"level": "Szint",
"min_xp": "Minimum XP",
"sort": "Rendezés",
"sort_xp": "XP szerint",
"sort_points": "Pontok szerint",
"sort_social": "Szociális pontok szerint",
"sort_level": "Szint szerint",
"filter": "Szűrés",
"reset": "Visszaállítás",
"descending": "Csökkenő",
"ascending": "Növekvő",
"user": "felhasználó",
"loading": "Ranglista betöltése...",
"error": "Nem sikerült betölteni a ranglistát.",
"retry": "Újrapróbálkozás",
"no_results": "Nincs találat a megadott szűrőkkel.",
"no_results_hint": "Próbálj más szűrési feltételeket használni.",
"user_col": "Felhasználó",
"email": "Email",
"xp": "XP",
"points": "Pontok",
"social": "Szociális",
"penalty": "Büntetés",
"restriction": "Restrikció",
"discoveries": "Felfedezések",
"services": "Szolgáltatások",
"updated": "Utolsó módosítás",
"actions": "Műveletek",
"details": "Részletek",
"prev": "Előző",
"next": "Következő",
"page_of": "/ oldal",
"restriction_mild": "Enyhe",
"restriction_moderate": "Közepes",
"restriction_severe": "Súlyos"
}

View File

@@ -1,29 +0,0 @@
{
"title": "Pontnapló",
"subtitle": "Gamification pontnapló böngészése",
"loading": "Pontnapló betöltése...",
"error": "Nem sikerült betölteni a pontnaplót.",
"user_id": "User ID",
"date_from": "Dátumtól",
"date_to": "Dátumig",
"reason": "Ok",
"search": "Keresés",
"clear": "Törlés",
"csv": "CSV",
"no_results": "Nincs találat a megadott szűrőkkel.",
"no_results_hint": "Próbálj más szűrési feltételeket használni.",
"id": "ID",
"user": "User",
"points": "Pont",
"penalty": "Büntetés",
"xp": "XP",
"source": "Forrás",
"date": "Dátum",
"prev": "Előző",
"next": "Következő",
"of": "/",
"showing": "mutatva",
"filtered": "(szűrve)",
"no_csv_data": "Nincs adat a CSV exportáláshoz.",
"csv_downloaded": "CSV letöltés elindítva."
}

View File

@@ -1,32 +0,0 @@
{
"title": "Szintek",
"subtitle": "Szint konfigurációk kezelése — CRUD",
"loading": "Szintek betöltése...",
"error": "Nem sikerült betölteni a szint konfigurációkat.",
"retry": "Újrapróbálkozás",
"create": "Új szint",
"no_items": "Még nincsenek szint konfigurációk.",
"level": "Szint",
"rank": "Rang",
"min_points": "Min. Pont",
"type": "Típus",
"actions": "Műveletek",
"penalty": "Büntető",
"normal": "Normál",
"tree_diagram": "Szint Fa Diagram",
"no_tree_data": "Nincsenek szintek megjelenítéshez.",
"points": "pont",
"edit_title": "Szint szerkesztése",
"create_title": "Szint létrehozása",
"level_number": "Szint Száma",
"rank_name": "Rang Neve",
"min_points_label": "Minimum Pont",
"is_penalty": "Büntető szint",
"cancel": "Mégse",
"save": "Mentés",
"saving": "Mentés...",
"updated": "Szint frissítve!",
"created": "Szint létrehozva!",
"duplicate_level": "Ezzel a szint számmal már létezik konfiguráció.",
"save_error": "Hiba történt a mentés során."
}

View File

@@ -1,35 +1,37 @@
{
"center": "Központ",
"dashboard": "Dashboard",
"providers": "Szolgáltatók",
"providers_title": "Szolgáltatók",
"all_providers": "Összes szolgáltató",
"pending_providers": "Jóváhagyásra váró",
"users_and_partners": "Felhasználók & Partnerek",
"garages": "Garázsok",
"garage_list": "Garázsok listája",
"users": "Felhasználók",
"user_list": "Felhasználók listája",
"persons": "Személyek",
"finance": "Pénzügyek",
"packages": "Csomagok",
"gamification": "Gamification",
"game_settings": "Játékmenet Beállítások",
"point_rules": "Pontszabályok",
"levels": "Szintek",
"badges": "Kitüntetések",
"validation_rules": "Validációs Szabályok",
"events_and_seasons": "Események & Szezonok",
"seasons": "Szezonok",
"competitions": "Versenyek",
"user_data": "Felhasználói Adatok",
"statistics": "Statisztikák",
"leaderboard": "Ranglista",
"points_ledger": "Pontnapló",
"gamification_hq": "Gamification HQ",
"system_config": "Rendszer Konfig",
"system_parameters": "Rendszerparaméterek",
"system": "Rendszer",
"permissions": "Jogosultságok",
"system_logs": "Rendszernaplók"
"menu": {
"center": "Központ",
"dashboard": "Dashboard",
"providers": "Szolgáltatók",
"providers_title": "Szolgáltatók",
"all_providers": "Összes szolgáltató",
"pending_providers": "Jóváhagyásra váró",
"users_and_partners": "Felhasználók & Partnerek",
"garages": "Garázsok",
"garage_list": "Garázsok listája",
"users": "Felhasználók",
"user_list": "Felhasználók listája",
"persons": "Személyek",
"finance": "Pénzügyek",
"packages": "Csomagok",
"gamification": "Gamification",
"game_settings": "Játékmenet Beállítások",
"point_rules": "Pontszabályok",
"levels": "Szintek",
"badges": "Kitüntetések",
"validation_rules": "Validációs Szabályok",
"events_and_seasons": "Események & Szezonok",
"seasons": "Szezonok",
"competitions": "Versenyek",
"user_data": "Felhasználói Adatok",
"statistics": "Statisztikák",
"leaderboard": "Ranglista",
"points_ledger": "Pontnapló",
"gamification_hq": "Gamification HQ",
"system_config": "Rendszer Konfig",
"system_parameters": "Rendszerparaméterek",
"system": "Rendszer",
"permissions": "Jogosultságok",
"system_logs": "Rendszernaplók"
}
}

View File

@@ -1,68 +0,0 @@
{
"title": "Csomagok Kezelése",
"subtitle": "Előfizetési csomagok és funkciók kezelése — Free, Premium, Enterprise",
"loading": "Csomagok betöltése...",
"retry": "Újra",
"create_new": "Új Csomag",
"no_packages": "Még nincsenek csomagok",
"no_packages_desc": "Hozd létre az első előfizetési csomagot a kezdéshez.",
"create_first": "Első Csomag Létrehozása",
"popular": "Népszerű",
"fallback_badge": "Visszaesési",
"trial_badge": "Próba",
"month": "hó",
"feature_flags": "Elérhető Funkciók",
"edit": "Szerkesztés",
"duplicate": "Másolás",
"delete": "Törlés",
"set_as_default": "Beállítás alapértelmezettként",
"set_as_default_success": "alapértelmezett csomagként beállítva!",
"edit_title": "Csomag Szerkesztése",
"create_title": "Csomag Létrehozása",
"cancel": "Mégse",
"save": "Változtatások Mentése",
"create": "Létrehozás",
"save_success": "Csomag sikeresen frissítve!",
"delete_title": "Csomag Törlése",
"delete_confirm": "Biztosan törölni szeretnéd a \"{name}\" csomagot?",
"delete_btn": "Törlés",
"allowances": "Korlátok",
"max_vehicles": "Max Jármű",
"max_garages": "Max Garázs",
"max_users": "Max Dolgozó",
"monthly_credits": "Havi Kredit",
"tier_level": "Szint",
"form_name": "Rendszer Név",
"form_name_placeholder": "pl. premium_2024",
"form_display_name": "Megjelenítési Név",
"form_display_name_placeholder": "pl. Premium Plus",
"form_type": "Típus",
"type_private": "Magán",
"type_corporate": "Vállalati",
"form_tier_level": "Szintszám",
"form_tier_level_hint": "Magasabb szám = több funkció és magasabb rang",
"form_monthly_price": "Havi Díj",
"form_yearly_price": "Éves Díj",
"form_currency": "Pénznem",
"form_subtitle": "Felirat / Leírás",
"form_subtitle_placeholder": "pl. Ideális kisvállalkozásoknak",
"form_badge": "Jelvény Szöveg",
"form_badge_placeholder": "pl. Legnépszerűbb",
"form_is_custom": "Egyedi Csomag (nem publikus)",
"singleton_rules": "Egyediségi Szabályok",
"form_is_default_fallback": "Alapértelmezett Visszaesési Csomag — lejárt előfizetés esetén erre vált",
"form_trial_days": "Próba Napok Regisztrációnál",
"form_trial_days_hint": "Az új szervezetek ennyi ingyenes napot kapnak. Csak egy csomagnál lehet > 0.",
"per_region_pricing": "Régiók szerinti árazás",
"smart_calculator": "Okos Árkalkulátor",
"calc_net_price": "Nettó ár",
"calc_vat_rate": "ÁFA kulcs",
"calc_currency": "Pénznem",
"calc_net": "Nettó",
"calc_vat": "ÁFA",
"calc_gross": "Bruttó",
"calc_apply": "Alkalmaz a kiválasztott régióra",
"add_zone": "Új Zóna Hozzáadása",
"add_zone_select": "Válassz országkódot...",
"add_zone_already_exists": "Ez a régió már létezik a csomag árazásában!"
}

View File

@@ -1,26 +0,0 @@
{
"title": "Rendszerparaméterek",
"subtitle": "Gamification kategóriájú rendszerparaméterek",
"loading": "Paraméterek betöltése...",
"error": "Nem sikerült betölteni a rendszerparamétereket.",
"retry": "Újrapróbálkozás",
"no_items": "Nincsenek gamification rendszerparaméterek.",
"key": "Kulcs",
"value": "Érték",
"category": "Kategória",
"scope": "Hatósugár",
"scope_id": "Scope ID",
"actions": "Műveletek",
"edit": "Szerkesztés",
"edit_title": "Paraméter szerkesztése",
"value_label": "Érték",
"value_placeholder": "Paraméter értéke (JSON vagy sima szöveg)",
"json_detected": "🔹 JSON formátum érzékelve",
"text_value": "🔸 Szöveges érték",
"cancel": "Mégse",
"save": "Mentés",
"saving": "Mentés...",
"invalid_json": "Érvénytelen JSON formátum: ",
"save_error": "Hiba történt a mentés során.",
"updated": "frissítve!"
}

View File

@@ -1,28 +0,0 @@
{
"title": "Jogosultság Kezelés",
"subtitle": "Jogosultsági Mátrix — Szerepkör alapú hozzáférés-vezérlés",
"loading": "Jogosultságok betöltése...",
"error_title": "Nem sikerült betölteni a jogosultságokat",
"retry": "Újra",
"save_changes": "Változtatások Mentése",
"discard": "Elvetés",
"modified_count": "{count} módosítás",
"domain_filter": "Tartomány Szűrő (Sorok)",
"role_filter": "Szerepkör Szűrő (Oszlopok)",
"select_all": "Összes kiválasztása",
"deselect_all": "Összes elrejtése",
"all_domains": "Minden",
"permission": "Engedély",
"no_permissions": "Nincsenek engedélyek ebben a tartományban.",
"current_tier": "Aktuális Csomag",
"expires": "Lejárat",
"superadmin": "Superadmin",
"superadmin_desc": "Teljes rendszer hozzáférés — felhasználók, számlázás, robotok és rendszerkonfiguráció.",
"garages": "Garázsok",
"garages_desc": "Garázs szintű hozzáférés — járműkezelés, szervizfoglalás, ügyféladatok.",
"feature_flags": "Feature Flags",
"feature_flags_desc": "Előfizetési funkciók — a jelenlegi csomagod alapján ({tier}).",
"rbac_title": "RBAC Jogosultsági Mátrix",
"rbac_desc": "Szerepkör alapú hozzáférés-vezérlés — mely szerepkörök mely admin műveleteket végezhetik.",
"action": "Művelet"
}

View File

@@ -1,110 +0,0 @@
{
"title": "Személyek Kezelése",
"subtitle": "Személyek listája, keresés, szűrők és részletek",
"loading": "Személyek betöltése...",
"retry": "Újra",
"search_placeholder": "Keresés név, telefonszám vagy e-mail alapján...",
"all_ghost_statuses": "Összes szellem státusz",
"ghost_no": "Nem szellem",
"ghost_yes": "Szellem",
"all_active_statuses": "Összes aktív státusz",
"active_yes": "Aktív",
"active_no": "Inaktív",
"all_user_statuses": "Összes felhasználói státusz",
"has_user_yes": "Van felhasználó",
"has_user_no": "Nincs felhasználó",
"all_merged_statuses": "Összes egyesítési státusz",
"merged_no": "Nincs egyesítve",
"merged_yes": "Egyesítve",
"total_persons": "Összes Személy",
"active_persons": "Aktív Személyek",
"ghost_persons": "Szellem Személyek",
"merged_persons": "Egyesített Személyek",
"filtered_results": "Szűrt eredmények",
"name": "Név",
"phone": "Telefonszám",
"birth_date": "Születési Dátum",
"status": "Státusz",
"users_count": "Felhasználók",
"active_user": "Aktív Felhasználó",
"address": "Cím",
"actions": "Műveletek",
"active": "Aktív",
"inactive": "Inaktív",
"ghost": "Szellem",
"merged": "Egyesítve",
"view": "Megtekintés",
"no_results": "Nincs a keresésnek megfelelő személy.",
"showing": "Mutató",
"prev": "Előző",
"next": "Következő",
"details": {
"loading": "Személy adatainak betöltése...",
"retry": "Újra",
"back": "Vissza a listához",
"sales_agent": "Értékesítési Ügynök",
"edit": "Szerkesztés",
"personal_info": "Személyes Adatok",
"person_id": "Személy ID",
"uuid": "UUID",
"last_name": "Vezetéknév",
"first_name": "Keresztnév",
"birth_place": "Születési Hely",
"mothers_name": "Anyja Neve",
"mothers_last_name": "Anyja Vezetékneve",
"mothers_first_name": "Anyja Keresztneve",
"address": "Cím",
"zip": "Irányítószám",
"city": "Város",
"street": "Utca",
"house_number": "Házszám",
"stairwell": "Lépcsőház",
"floor": "Emelet",
"door": "Ajtó",
"parcel_id": "Helyrajzi Szám (HRSZ)",
"full_address": "Teljes Cím",
"system_info": "Rendszer Információk",
"is_sales_agent": "Értékesítési Ügynök",
"lifetime_xp": "Élettapasztalat (XP)",
"penalty_points": "Büntetőpontok",
"social_reputation": "Társadalmi Megítélés",
"created_at": "Létrehozva",
"updated_at": "Frissítve",
"deleted_at": "Törölve",
"identity_docs": "Személyazonosító Okmányok",
"ice_contact": "Vészhelyzeti Kapcsolattartó",
"connected_users": "Kapcsolódó Felhasználók",
"users_count": "{count} felhasználó kapcsolódik",
"no_users": "Ehhez a személyhez nem kapcsolódik felhasználó.",
"email": "E-mail",
"role": "Szerepkör",
"plan": "Csomag",
"language": "Nyelv",
"registered_at": "Regisztráció Dátuma",
"memberships": "Tagságok",
"memberships_count": "{count} tagság",
"no_memberships": "Nincs tagság.",
"org_name": "Szervezet Neve",
"org_type": "Típus",
"org_role": "Szerepkör",
"member_status": "Státusz",
"verified": "Ellenőrzött",
"joined_at": "Csatlakozás Dátuma",
"verified_yes": "Igen",
"verified_no": "Nem",
"owned_orgs": "Tulajdonolt Szervezetek",
"owned_orgs_count": "{count} szervezet",
"no_owned_orgs": "Nincs tulajdonolt szervezet.",
"merge_history": "Egyesítési Előzmények",
"no_merge_history": "Nincs egyesítési előzmény.",
"merged_into": "Egyesítve ebbe:",
"merged_at": "Egyesítés Dátuma",
"edit_title": "Személy Szerkesztése",
"status_section": "Státusz",
"is_active": "Aktív",
"is_ghost": "Szellem",
"cancel": "Mégse",
"saving": "Mentés...",
"save": "Mentés"
}
}

View File

@@ -1,40 +0,0 @@
{
"title": "Pontszabályok",
"subtitle": "Gamification pontszabályok kezelése — CRUD",
"loading": "Pontszabályok betöltése...",
"error": "Nem sikerült betölteni a pontszabályokat.",
"retry": "Újrapróbálkozás",
"create": "Új pontszabály",
"no_items": "Még nincsenek pontszabályok. Hozz létre egyet a fenti gombbal!",
"id": "ID",
"action_key": "Akció Kulcs",
"points": "Pont",
"description": "Leírás",
"status": "Státusz",
"actions": "Műveletek",
"active": "Aktív",
"inactive": "Inaktív",
"edit": "Szerkesztés",
"delete": "Törlés (soft-delete)",
"edit_title": "Pontszabály szerkesztése",
"create_title": "Új pontszabály",
"action_key_label": "Akció Kulcs",
"action_key_placeholder": "pl. service_submitted",
"points_label": "Pontérték",
"points_placeholder": "0",
"description_label": "Leírás",
"description_placeholder": "Rövid leírás a szabályról...",
"is_active": "Aktív",
"cancel": "Mégse",
"save": "Mentés",
"saving": "Mentés...",
"updated": "Pontszabály frissítve!",
"created": "Pontszabály létrehozva!",
"deleted": "Pontszabály deaktiválva!",
"duplicate_key": "Egy szabály ezzel a kulccsal már létezik.",
"save_error": "Nem sikerült menteni a pontszabályt.",
"delete_title": "Pontszabály törlése",
"delete_confirm": "Biztosan deaktiválod a következő szabályt:",
"delete_btn": "Törlés",
"deleting": "Törlés..."
}

View File

@@ -1,280 +1,282 @@
{
"title": "Szolgáltatók",
"subtitle": "Szolgáltatók listázása, keresése és moderálása",
"loading": "Szolgáltatók betöltése...",
"error": "Hiba történt a szolgáltatók betöltése közben.",
"retry": "Újrapróbálkozás",
"stats_total": "Összes",
"stats_pending": "Függőben",
"stats_approved": "Jóváhagyott",
"stats_rejected": "Elutasított",
"stats_flagged": "Megjelölt",
"search_placeholder": "Keresés név alapján...",
"filter_all_status": "Minden státusz",
"filter_pending": "Függőben",
"filter_approved": "Jóváhagyott",
"filter_rejected": "Elutasított",
"filter_flagged": "Megjelölt",
"filter_all_sources": "Minden forrás",
"source_manual": "Kézi",
"source_ocr": "OCR",
"source_import": "Import",
"source_bot": "Bot (Staging)",
"source_verified_org": "Szervezet",
"sort_created_at": "Létrehozás dátuma",
"sort_name": "Név",
"sort_validation_score": "Validációs pontszám",
"col_id": "ID",
"col_name": "Név",
"col_address": "Cím",
"col_status": "Státusz",
"col_source": "Forrás",
"col_validation": "Validáció",
"col_created": "Létrehozva",
"col_actions": "Műveletek",
"no_providers": "Nincs megjeleníthető szolgáltató.",
"results_count": "{count} találat (összesen: {total})",
"page": "{page}. oldal",
"view_details": "Részletek",
"status_pending": "Függőben",
"status_approved": "Jóváhagyott",
"status_rejected": "Elutasított",
"status_flagged": "Megjelölt",
"provider_detail": "Szolgáltató részletek",
"detail_loading": "Szolgáltató betöltése...",
"detail_not_found": "A szolgáltató nem található.",
"detail_back": "Vissza a szolgáltatókhoz",
"detail_provider_number": "Szolgáltató #{id}",
"detail_raw_data": "Nyers adatok",
"detail_tab_data": "Adatok",
"detail_tab_status": "Státusz",
"detail_tab_validations": "Validációk",
"detail_tab_crawler": "Crawler / Nyers Adatok",
"detail_tab_history": "Előzmények",
"detail_section_basic": "Alapadatok",
"detail_section_address": "Cím adatok",
"detail_section_contact": "Elérhetőség",
"detail_section_services": "Szolgáltatások",
"detail_section_vehicle_classes": "Járműosztályok",
"detail_section_specializations": "Specializációk",
"detail_section_opening_hours": "Nyitvatartás",
"detail_section_evidence": "Bizonyíték kép",
"detail_section_moderation": "Moderációs műveletek",
"detail_section_status_management": "Státusz kezelés",
"detail_section_validation_score": "Validációs Pontszám",
"detail_section_gamification_validations": "Gamification Validációk",
"detail_section_crawler_data": "Crawler / Nyers Adatok",
"detail_section_history": "Állapotváltoztatások előzményei",
"detail_field_name": "Név",
"detail_field_category": "Kategória",
"detail_field_source": "Forrás",
"detail_field_validation_score": "Validációs pontszám",
"detail_field_created": "Létrehozva",
"detail_field_submitted_by": "Beküldő user ID",
"detail_field_full_address": "Teljes cím",
"detail_field_city": "Város",
"detail_field_zip": "Irányítószám",
"detail_field_street": "Utca",
"detail_field_house_number": "Házszám",
"detail_field_plus_code": "Plus Code",
"detail_field_phone": "Telefon",
"detail_field_email": "Email",
"detail_field_website": "Weboldal",
"detail_no_categories": "Nincsenek kategóriák beállítva",
"detail_no_vehicle_classes": "Nincsenek járműosztályok beállítva",
"detail_no_specializations": "Nincsenek specializációk beállítva",
"detail_no_opening_hours": "Nincs beállítva nyitvatartás",
"detail_day_monday": "Hétfő",
"detail_day_tuesday": "Kedd",
"detail_day_wednesday": "Szerda",
"detail_day_thursday": "Csütörtök",
"detail_day_friday": "Péntek",
"detail_day_saturday": "Szombat",
"detail_day_sunday": "Vasárnap",
"detail_day_label": "Nap",
"detail_hours_label": "Nyitva",
"detail_closed": "Zárva",
"detail_specialization_brands": "Márkák",
"detail_specialization_propulsion": "Hajtáslánc",
"detail_status_approved": "Jóváhagyva",
"detail_status_pending": "Függőben",
"detail_status_research": "Kutatás folyamatban",
"detail_status_rejected": "Elutasítva",
"detail_status_unknown": "Ismeretlen",
"detail_status_desc_approved": "A szolgáltató aktív és látható a felhasználók számára.",
"detail_status_desc_pending": "A szolgáltató még nem lett jóváhagyva, moderálásra vár.",
"detail_status_desc_research": "A szolgáltató adatai még feldolgozás alatt állnak, automatikus kutatás folyik.",
"detail_status_desc_rejected": "A szolgáltató elutasításra került, nem látható a felhasználók számára.",
"detail_edit": "Szerkesztés",
"detail_approve": "Jóváhagyás",
"detail_reject": "Elutasítás",
"detail_flag": "Megjelölés (Flag)",
"detail_delete": "Törlés (Soft Delete)",
"detail_restore": "Visszaállítás",
"detail_status_rejected_or_flagged": "A szolgáltató {status} került.",
"detail_status_rejected_text": "elutasításra",
"detail_status_flagged_text": "megjelölésre",
"detail_status_form_label": "Státusz",
"detail_status_form_score": "Validációs pontszám (0-100)",
"detail_status_form_reason": "Indoklás (opcionális)",
"detail_status_form_reason_placeholder": "Add meg a státuszváltoztatás okát...",
"detail_status_form_cancel": "Mégsem",
"detail_status_form_save": "Státusz mentése",
"detail_validation_score_excellent": "Kiváló",
"detail_validation_score_medium": "Közepes",
"detail_validation_score_weak": "Gyenge",
"detail_validation_score_desc": "A szolgáltató megbízhatósági pontszáma a gamification validációk alapján.",
"detail_validation_no_entries": "Nincsenek validációs bejegyzések ehhez a szolgáltatóhoz.",
"detail_validation_voter": "Szavazó:",
"detail_validation_reason": "Indoklás:",
"detail_validation_weight": "súly:",
"detail_crawler_source": "Forrás:",
"detail_crawler_trust_score": "Trust Score:",
"detail_crawler_rejection_reason_title": "Elutasítás indoklása",
"detail_crawler_raw_data": "Nyers adatok (raw_data)",
"detail_crawler_audit_trail": "Audit Trail",
"detail_history_no_entries": "Nincsenek előzmények ehhez a szolgáltatóhoz.",
"detail_history_user": "User #{id}",
"detail_history_status": "Státusz:",
"detail_history_reason": "Indoklás:",
"detail_history_detailed_changes": "Részletes változások",
"detail_history_old_data": "Régi adatok",
"detail_flag_modal_title": "Szolgáltató megjelölése",
"detail_flag_modal_body": "Biztosan megjelölöd a(z) {name} szolgáltatót?",
"detail_flag_reason_label": "Indoklás (opcionális)",
"detail_flag_reason_placeholder": "Add meg a megjelölés okát...",
"detail_flag_submit": "Megjelölés",
"detail_toast_approved": "Szolgáltató jóváhagyva!",
"detail_toast_rejected": "Szolgáltató elutasítva!",
"detail_toast_restored": "Szolgáltató visszaállítva!",
"detail_toast_flagged": "Szolgáltató megjelölve!",
"detail_toast_deleted": "Szolgáltató törölve!",
"detail_toast_status_updated": "Státusz frissítve!",
"detail_toast_error_approve": "Hiba a jóváhagyás során",
"detail_toast_error_reject": "Hiba az elutasítás során",
"detail_toast_error_restore": "Hiba a visszaállítás során",
"detail_toast_error_flag": "Hiba a megjelölés során",
"detail_toast_error_delete": "Hiba a törlés során",
"detail_toast_error_status": "Hiba a státusz mentése során",
"detail_delete_confirm": "Biztosan törlöd ezt a szolgáltatót? Ez a művelet nem visszavonható.",
"detail_vehicle_class_car": "Személyautó",
"detail_vehicle_class_motorcycle": "Motorkerékpár",
"detail_vehicle_class_truck": "Teherautó",
"detail_vehicle_class_hgv": "Nehézgépjármű (HGV)",
"detail_vehicle_class_light_commercial": "Kishaszonjármű",
"detail_vehicle_class_personal": "Személyes",
"detail_vehicle_class_boat": "Csónak/Vízi",
"detail_vehicle_class_other": "Egyéb",
"detail_validation_type_phone_verified": "Telefon igazolt",
"detail_validation_type_email_verified": "Email igazolt",
"detail_validation_type_address_verified": "Cím igazolt",
"detail_validation_type_website_verified": "Weboldal igazolt",
"detail_validation_type_manual_review": "Kézi ellenőrzés",
"detail_validation_type_community_vouch": "Közösségi ajánlás",
"detail_validation_type_business_hours": "Nyitvatartás ellenőrzött",
"detail_validation_type_photo_evidence": "Fénykép bizonyíték",
"detail_history_action_approve": "Jóváhagyás",
"detail_history_action_reject": "Elutasítás",
"detail_history_action_restore": "Visszaállítás",
"detail_history_action_flag": "Megjelölés",
"detail_history_action_update": "Módosítás",
"detail_history_action_delete": "Törlés",
"detail_history_action_create": "Létrehozás",
"pending_title": "Jóváhagyásra váró szolgáltatók",
"pending_subtitle": "A közösség által beküldött szolgáltatók moderációs sora",
"pending_loading": "Függőben lévő szolgáltatók betöltése...",
"rejected_title": "Elutasított szolgáltatók",
"rejected_subtitle": "Elutasított szolgáltatók visszaállítása az aktív kereshető szolgáltatók közé",
"rejected_loading": "Elutasított szolgáltatók betöltése...",
"approve": "Jóváhagyás",
"reject": "Elutasítás",
"restore": "Visszaállítás",
"details": "Részletek",
"reject_modal_title": "Szolgáltató elutasítása",
"reject_modal_body": "Biztosan elutasítod a(z) {name} szolgáltatót?",
"reject_reason_label": "Indoklás (opcionális)",
"reject_reason_placeholder": "Add meg az elutasítás okát...",
"restore_modal_title": "Szolgáltató visszaállítása",
"restore_modal_body": "Biztosan visszaállítod a(z) {name} szolgáltatót? A visszaállítás után a szolgáltató újra elérhető lesz a keresőben és a listákban.",
"restore_reason_label": "Indoklás (opcionális)",
"restore_reason_placeholder": "Add meg a visszaállítás okát...",
"no_pending": "Nincs függőben lévő szolgáltató",
"no_pending_subtitle": "Minden beküldött szolgáltató fel lett dolgozva.",
"no_rejected": "Nincs elutasított szolgáltató",
"no_rejected_subtitle": "Minden szolgáltató jóváhagyott státuszban van.",
"approved_toast": "\"{name}\" sikeresen jóváhagyva",
"rejected_toast": "\"{name}\" elutasítva",
"restored_toast": "\"{name}\" sikeresen visszaállítva",
"error_prefix": "Hiba: {detail}",
"unknown_error": "Ismeretlen hiba",
"label_address": "Cím:",
"label_city": "Város:",
"label_category": "Kategória:",
"label_validation_score": "Validációs pontszám:",
"label_submitted": "Beküldve:",
"label_created": "Létrehozva:",
"edit_title": "Szolgáltató szerkesztése",
"edit_loading": "Szolgáltató betöltése...",
"edit_error": "Hiba történt a szolgáltató betöltése közben.",
"edit_not_found": "A szolgáltató nem található.",
"edit_back": "Vissza a szolgáltatóhoz",
"edit_raw_data": "Nyers adatok",
"edit_tab_basic": "Alapadatok & Kapcsolat",
"edit_tab_matrix": "Szolgáltatások & Járművek",
"edit_tab_location": "Helyszín & Lokáció",
"edit_tab_hours": "Nyitvatartás",
"edit_section_basic": "Alapadatok",
"edit_section_contact": "Elérhetőség",
"edit_section_matrix": "3D Képesség Mátrix",
"edit_section_matrix_desc": "Állítsd be, hogy a szolgáltató milyen járműosztályokhoz, szolgáltatási kategóriákhoz és specializációkhoz tartozik.",
"edit_section_vehicle_classes": "Járműosztályok (Vehicle Classes)",
"edit_section_vehicle_classes_desc": "Mely járműtípusokat szervizeli a szolgáltató?",
"edit_section_expertise_tags": "Szolgáltatási Kategóriák (Expertise Tags)",
"edit_section_expertise_tags_desc": "Válaszd ki a szolgáltatóhoz tartozó kategóriákat a hierarchikus fából.",
"edit_section_specializations": "Specializációk",
"edit_section_specializations_desc": "Adj meg speciális márkákat, hajtáslánc típusokat vagy egyéb címkéket.",
"edit_section_location_extra": "További helyszín adatok",
"edit_section_opening_hours": "Nyitvatartás",
"edit_section_opening_hours_desc": "Állítsd be a szolgáltató nyitvatartási idejét napokra bontva.",
"edit_field_name": "Név *",
"edit_field_category": "Kategória",
"edit_field_category_placeholder": "pl. Autószerviz, Gumiszerviz",
"edit_field_source": "Forrás",
"edit_field_phone": "Telefon",
"edit_field_phone_placeholder": "+36 30 123 4567",
"edit_field_email": "Email",
"edit_field_email_placeholder": "info{'@'}example.com",
"edit_field_website": "Weboldal",
"edit_field_website_placeholder": "https://...",
"edit_field_full_address": "Teljes cím szövege",
"edit_field_full_address_placeholder": "Teljes cím szövege",
"edit_field_plus_code": "Plus Code",
"edit_field_plus_code_placeholder": "8FVC9X8V+XV",
"edit_field_brands": "Márkák (Brands)",
"edit_field_brands_placeholder": "pl. Volvo, Scania",
"edit_field_propulsion": "Hajtáslánc (Propulsion)",
"edit_field_propulsion_placeholder": "pl. EV, Hybrid, Diesel",
"edit_field_add": "Hozzáad",
"edit_always_open": "Folyamatos (0-24) nyitvatartás",
"edit_always_open_desc": "A szolgáltató a hét minden napján 0-24 óráig nyitva van",
"edit_btn_24_7": "24/7 Folyamatos nyitvatartás",
"edit_btn_copy_weekdays": "Hétköznapok másolása (Hétfő → K-P)",
"edit_btn_clear_all": "Összes törlése",
"edit_closed": "Zárva",
"edit_has_changes": "● Módosítások el nem mentve",
"edit_no_changes": "Nincs változás",
"edit_cancel": "Mégse",
"edit_save": "Mentés",
"edit_toast_saved": "Szolgáltató sikeresen frissítve!",
"edit_toast_promoted": "Sikeres előléptetés!",
"edit_toast_error": "Hiba a mentés során: {message}",
"edit_copy_weekdays_open_prompt": "Add meg a nyitási időt (pl. 08:00):",
"edit_copy_weekdays_close_prompt": "Add meg a zárási időt (pl. 17:00):",
"edit_categories_loading": "Kategóriák betöltése...",
"edit_level_label": "(Szint {level})",
"edit_source_label": "Forrás:",
"edit_trust_score_label": "Trust Score:",
"edit_raw_data_title": "Nyers adatok (raw_data)",
"edit_audit_trail_title": "Audit Trail",
"edit_rejection_reason_title": "Elutasítás indoklása"
}
"providers": {
"title": "Szolgáltatók",
"subtitle": "Szolgáltatók listázása, keresése és moderálása",
"loading": "Szolgáltatók betöltése...",
"error": "Hiba történt a szolgáltatók betöltése közben.",
"retry": "Újrapróbálkozás",
"stats_total": "Összes",
"stats_pending": "Függőben",
"stats_approved": "Jóváhagyott",
"stats_rejected": "Elutasított",
"stats_flagged": "Megjelölt",
"search_placeholder": "Keresés név alapján...",
"filter_all_status": "Minden státusz",
"filter_pending": "Függőben",
"filter_approved": "Jóváhagyott",
"filter_rejected": "Elutasított",
"filter_flagged": "Megjelölt",
"filter_all_sources": "Minden forrás",
"source_manual": "Kézi",
"source_ocr": "OCR",
"source_import": "Import",
"source_bot": "Bot (Staging)",
"source_verified_org": "Szervezet",
"sort_created_at": "Létrehozás dátuma",
"sort_name": "Név",
"sort_validation_score": "Validációs pontszám",
"col_id": "ID",
"col_name": "Név",
"col_address": "Cím",
"col_status": "Státusz",
"col_source": "Forrás",
"col_validation": "Validáció",
"col_created": "Létrehozva",
"col_actions": "Műveletek",
"no_providers": "Nincs megjeleníthető szolgáltató.",
"results_count": "{count} találat (összesen: {total})",
"page": "{page}. oldal",
"view_details": "Részletek",
"status_pending": "Függőben",
"status_approved": "Jóváhagyott",
"status_rejected": "Elutasított",
"status_flagged": "Megjelölt",
"provider_detail": "Szolgáltató részletek",
"detail_loading": "Szolgáltató betöltése...",
"detail_not_found": "A szolgáltató nem található.",
"detail_back": "Vissza a szolgáltatókhoz",
"detail_provider_number": "Szolgáltató #{id}",
"detail_raw_data": "Nyers adatok",
"detail_tab_data": "Adatok",
"detail_tab_status": "Státusz",
"detail_tab_validations": "Validációk",
"detail_tab_crawler": "Crawler / Nyers Adatok",
"detail_tab_history": "Előzmények",
"detail_section_basic": "Alapadatok",
"detail_section_address": "Cím adatok",
"detail_section_contact": "Elérhetőség",
"detail_section_services": "Szolgáltatások",
"detail_section_vehicle_classes": "Járműosztályok",
"detail_section_specializations": "Specializációk",
"detail_section_opening_hours": "Nyitvatartás",
"detail_section_evidence": "Bizonyíték kép",
"detail_section_moderation": "Moderációs műveletek",
"detail_section_status_management": "Státusz kezelés",
"detail_section_validation_score": "Validációs Pontszám",
"detail_section_gamification_validations": "Gamification Validációk",
"detail_section_crawler_data": "Crawler / Nyers Adatok",
"detail_section_history": "Állapotváltoztatások előzményei",
"detail_field_name": "Név",
"detail_field_category": "Kategória",
"detail_field_source": "Forrás",
"detail_field_validation_score": "Validációs pontszám",
"detail_field_created": "Létrehozva",
"detail_field_submitted_by": "Beküldő user ID",
"detail_field_full_address": "Teljes cím",
"detail_field_city": "Város",
"detail_field_zip": "Irányítószám",
"detail_field_street": "Utca",
"detail_field_house_number": "Házszám",
"detail_field_plus_code": "Plus Code",
"detail_field_phone": "Telefon",
"detail_field_email": "Email",
"detail_field_website": "Weboldal",
"detail_no_categories": "Nincsenek kategóriák beállítva",
"detail_no_vehicle_classes": "Nincsenek járműosztályok beállítva",
"detail_no_specializations": "Nincsenek specializációk beállítva",
"detail_no_opening_hours": "Nincs beállítva nyitvatartás",
"detail_day_monday": "Hétfő",
"detail_day_tuesday": "Kedd",
"detail_day_wednesday": "Szerda",
"detail_day_thursday": "Csütörtök",
"detail_day_friday": "Péntek",
"detail_day_saturday": "Szombat",
"detail_day_sunday": "Vasárnap",
"detail_day_label": "Nap",
"detail_hours_label": "Nyitva",
"detail_closed": "Zárva",
"detail_specialization_brands": "Márkák",
"detail_specialization_propulsion": "Hajtáslánc",
"detail_status_approved": "Jóváhagyva",
"detail_status_pending": "Függőben",
"detail_status_research": "Kutatás folyamatban",
"detail_status_rejected": "Elutasítva",
"detail_status_unknown": "Ismeretlen",
"detail_status_desc_approved": "A szolgáltató aktív és látható a felhasználók számára.",
"detail_status_desc_pending": "A szolgáltató még nem lett jóváhagyva, moderálásra vár.",
"detail_status_desc_research": "A szolgáltató adatai még feldolgozás alatt állnak, automatikus kutatás folyik.",
"detail_status_desc_rejected": "A szolgáltató elutasításra került, nem látható a felhasználók számára.",
"detail_edit": "Szerkesztés",
"detail_approve": "Jóváhagyás",
"detail_reject": "Elutasítás",
"detail_flag": "Megjelölés (Flag)",
"detail_delete": "Törlés (Soft Delete)",
"detail_restore": "Visszaállítás",
"detail_status_rejected_or_flagged": "A szolgáltató {status} került.",
"detail_status_rejected_text": "elutasításra",
"detail_status_flagged_text": "megjelölésre",
"detail_status_form_label": "Státusz",
"detail_status_form_score": "Validációs pontszám (0-100)",
"detail_status_form_reason": "Indoklás (opcionális)",
"detail_status_form_reason_placeholder": "Add meg a státuszváltoztatás okát...",
"detail_status_form_cancel": "Mégsem",
"detail_status_form_save": "Státusz mentése",
"detail_validation_score_excellent": "Kiváló",
"detail_validation_score_medium": "Közepes",
"detail_validation_score_weak": "Gyenge",
"detail_validation_score_desc": "A szolgáltató megbízhatósági pontszáma a gamification validációk alapján.",
"detail_validation_no_entries": "Nincsenek validációs bejegyzések ehhez a szolgáltatóhoz.",
"detail_validation_voter": "Szavazó:",
"detail_validation_reason": "Indoklás:",
"detail_validation_weight": "súly:",
"detail_crawler_source": "Forrás:",
"detail_crawler_trust_score": "Trust Score:",
"detail_crawler_rejection_reason_title": "Elutasítás indoklása",
"detail_crawler_raw_data": "Nyers adatok (raw_data)",
"detail_crawler_audit_trail": "Audit Trail",
"detail_history_no_entries": "Nincsenek előzmények ehhez a szolgáltatóhoz.",
"detail_history_user": "User #{id}",
"detail_history_status": "Státusz:",
"detail_history_reason": "Indoklás:",
"detail_history_detailed_changes": "Részletes változások",
"detail_history_old_data": "Régi adatok",
"detail_flag_modal_title": "Szolgáltató megjelölése",
"detail_flag_modal_body": "Biztosan megjelölöd a(z) {name} szolgáltatót?",
"detail_flag_reason_label": "Indoklás (opcionális)",
"detail_flag_reason_placeholder": "Add meg a megjelölés okát...",
"detail_flag_submit": "Megjelölés",
"detail_toast_approved": "Szolgáltató jóváhagyva!",
"detail_toast_rejected": "Szolgáltató elutasítva!",
"detail_toast_restored": "Szolgáltató visszaállítva!",
"detail_toast_flagged": "Szolgáltató megjelölve!",
"detail_toast_deleted": "Szolgáltató törölve!",
"detail_toast_status_updated": "Státusz frissítve!",
"detail_toast_error_approve": "Hiba a jóváhagyás során",
"detail_toast_error_reject": "Hiba az elutasítás során",
"detail_toast_error_restore": "Hiba a visszaállítás során",
"detail_toast_error_flag": "Hiba a megjelölés során",
"detail_toast_error_delete": "Hiba a törlés során",
"detail_toast_error_status": "Hiba a státusz mentése során",
"detail_delete_confirm": "Biztosan törlöd ezt a szolgáltatót? Ez a művelet nem visszavonha.",
"detail_vehicle_class_car": "Személyautó",
"detail_vehicle_class_motorcycle": "Motorkerékpár",
"detail_vehicle_class_truck": "Teherautó",
"detail_vehicle_class_hgv": "Nehézgépjármű (HGV)",
"detail_vehicle_class_light_commercial": "Kishaszonjármű",
"detail_vehicle_class_personal": "Személyes",
"detail_vehicle_class_boat": "Csónak/Vízi",
"detail_vehicle_class_other": "Egyéb",
"detail_validation_type_phone_verified": "Telefon igazolt",
"detail_validation_type_email_verified": "Email igazolt",
"detail_validation_type_address_verified": "Cím igazolt",
"detail_validation_type_website_verified": "Weboldal igazolt",
"detail_validation_type_manual_review": "Kézi ellenőrzés",
"detail_validation_type_community_vouch": "Közösségi ajánlás",
"detail_validation_type_business_hours": "Nyitvatartás ellenőrzött",
"detail_validation_type_photo_evidence": "Fénykép bizonyíték",
"detail_history_action_approve": "Jóváhagyás",
"detail_history_action_reject": "Elutasítás",
"detail_history_action_restore": "Visszaállítás",
"detail_history_action_flag": "Megjelölés",
"detail_history_action_update": "Módosítás",
"detail_history_action_delete": "Törlés",
"detail_history_action_create": "Létrehozás",
"pending_title": "Jóváhagyásra váró szolgáltatók",
"pending_subtitle": "A közösség által beküldött szolgáltatók moderációs sora",
"pending_loading": "Függőben lévő szolgáltatók betöltése...",
"rejected_title": "Elutasított szolgáltatók",
"rejected_subtitle": "Elutasított szolgáltatók visszaállítása az aktív kereshető szolgáltatók közé",
"rejected_loading": "Elutasított szolgáltatók betöltése...",
"approve": "Jóváhagyás",
"reject": "Elutasítás",
"restore": "Visszaállítás",
"details": "Részletek",
"reject_modal_title": "Szolgáltató elutasítása",
"reject_modal_body": "Biztosan elutasítod a(z) {name} szolgáltatót?",
"reject_reason_label": "Indoklás (opcionális)",
"reject_reason_placeholder": "Add meg az elutasítás okát...",
"restore_modal_title": "Szolgáltató visszaállítása",
"restore_modal_body": "Biztosan visszaállítod a(z) {name} szolgáltatót? A visszaállítás után a szolgáltató újra elérhető lesz a keresőben és a listákban.",
"restore_reason_label": "Indoklás (opcionális)",
"restore_reason_placeholder": "Add meg a visszaállítás okát...",
"no_pending": "Nincs függőben lévő szolgáltató",
"no_pending_subtitle": "Minden beküldött szolgáltató fel lett dolgozva.",
"no_rejected": "Nincs elutasított szolgáltató",
"no_rejected_subtitle": "Minden szolgáltató jóváhagyott státuszban van.",
"approved_toast": "\"{name}\" sikeresen jóváhagyva",
"rejected_toast": "\"{name}\" elutasítva",
"restored_toast": "\"{name}\" sikeresen visszaállítva",
"error_prefix": "Hiba: {detail}",
"unknown_error": "Ismeretlen hiba",
"label_address": "Cím:",
"label_city": "Város:",
"label_category": "Kategória:",
"label_validation_score": "Validációs pontszám:",
"label_submitted": "Beküldve:",
"label_created": "Létrehozva:",
"edit_title": "Szolgáltató szerkesztése",
"edit_loading": "Szolgáltató betöltése...",
"edit_error": "Hiba történt a szolgáltató betöltése közben.",
"edit_not_found": "A szolgáltató nem található.",
"edit_back": "Vissza a szolgáltatóhoz",
"edit_raw_data": "Nyers adatok",
"edit_tab_basic": "Alapadatok & Kapcsolat",
"edit_tab_matrix": "Szolgáltatások & Járművek",
"edit_tab_location": "Helyszín & Lokáció",
"edit_tab_hours": "Nyitvatartás",
"edit_section_basic": "Alapadatok",
"edit_section_contact": "Elérhetőség",
"edit_section_matrix": "3D Képesség Mátrix",
"edit_section_matrix_desc": "Állítsd be, hogy a szolgáltató milyen járműosztályokhoz, szolgáltatási kategóriákhoz és specializációkhoz tartozik.",
"edit_section_vehicle_classes": "Járműosztályok (Vehicle Classes)",
"edit_section_vehicle_classes_desc": "Mely járműtípusokat szervizeli a szolgáltató?",
"edit_section_expertise_tags": "Szolgáltatási Kategóriák (Expertise Tags)",
"edit_section_expertise_tags_desc": "Válaszd ki a szolgáltatóhoz tartozó kategóriákat a hierarchikus fából.",
"edit_section_specializations": "Specializációk",
"edit_section_specializations_desc": "Adj meg speciális márkákat, hajtáslánc típusokat vagy egyéb címkéket.",
"edit_section_location_extra": "További helyszín adatok",
"edit_section_opening_hours": "Nyitvatartás",
"edit_section_opening_hours_desc": "Állítsd be a szolgáltató nyitvatartási idejét napokra bontva.",
"edit_field_name": "Név *",
"edit_field_category": "Kategória",
"edit_field_category_placeholder": "pl. Autószerviz, Gumiszerviz",
"edit_field_source": "Forrás",
"edit_field_phone": "Telefon",
"edit_field_phone_placeholder": "+36 30 123 4567",
"edit_field_email": "Email",
"edit_field_email_placeholder": "info{'@'}example.com",
"edit_field_website": "Weboldal",
"edit_field_website_placeholder": "https://...",
"edit_field_full_address": "Teljes cím szövege",
"edit_field_full_address_placeholder": "Teljes cím szövege",
"edit_field_plus_code": "Plus Code",
"edit_field_plus_code_placeholder": "8FVC9X8V+XV",
"edit_field_brands": "Márkák (Brands)",
"edit_field_brands_placeholder": "pl. Volvo, Scania",
"edit_field_propulsion": "Hajtáslánc (Propulsion)",
"edit_field_propulsion_placeholder": "pl. EV, Hybrid, Diesel",
"edit_field_add": "Hozzáad",
"edit_always_open": "Folyamatos (0-24) nyitvatartás",
"edit_always_open_desc": "A szolgáltató a hét minden napján 0-24 óráig nyitva van",
"edit_btn_24_7": "24/7 Folyamatos nyitvatartás",
"edit_btn_copy_weekdays": "Hétköznapok másolása (Hétfő → K-P)",
"edit_btn_clear_all": "Összes törlése",
"edit_closed": "Zárva",
"edit_has_changes": "● Módosítások el nem mentve",
"edit_no_changes": "Nincs változás",
"edit_cancel": "Mégse",
"edit_save": "Mentés",
"edit_toast_saved": "Szolgáltató sikeresen frissítve!",
"edit_toast_promoted": "Sikeres előléptetés!",
"edit_toast_error": "Hiba a mentés során: {message}",
"edit_copy_weekdays_open_prompt": "Add meg a nyitási időt (pl. 08:00):",
"edit_copy_weekdays_close_prompt": "Add meg a zárási időt (pl. 17:00):",
"edit_categories_loading": "Kategóriák betöltése...",
"edit_level_label": "(Szint {level})",
"edit_source_label": "Forrás:",
"edit_trust_score_label": "Trust Score:",
"edit_raw_data_title": "Nyers adatok (raw_data)",
"edit_audit_trail_title": "Audit Trail",
"edit_rejection_reason_title": "Elutasítás indoklása"
}
}

View File

@@ -1,31 +0,0 @@
{
"title": "Szezonok",
"subtitle": "Gamification szezonkezelés",
"loading": "Szezonok betöltése...",
"error": "Nem sikerült betölteni a szezonokat.",
"retry": "Újra",
"create": "Új Szezon",
"no_items": "Még nincsenek szezonok létrehozva.",
"create_first": "Első Szezon Létrehozása",
"active": "Aktív",
"inactive": "Inaktív",
"created_at": "Létrehozva:",
"activate": "Aktiválás",
"edit": "Szerkesztés",
"edit_title": "Szezon szerkesztése",
"create_title": "Új Szezon",
"name": "Név",
"name_placeholder": "pl. 2026 Q1 Szezon",
"start_date": "Kezdő dátum",
"end_date": "Záró dátum",
"activate_on_create": "Aktiválás létrehozáskor",
"cancel": "Mégse",
"save": "Mentés",
"create_btn": "Létrehozás",
"activate_title": "Szezon aktiválása",
"activate_confirm": "Biztosan aktiválni szeretnéd",
"activate_warning": "Ez deaktiválja az összes többi szezont.",
"activating": "Aktiválás...",
"activate_btn": "Aktiválás",
"save_error": "Nem sikerült menteni a szezont."
}

View File

@@ -0,0 +1,181 @@
{
"system": {
"config": {
"title": "Rendszer Konfig",
"subtitle": "Gamification master konfiguráció szerkesztése",
"loading": "Konfiguráció betöltése...",
"error": "Nem sikerült betölteni a konfigurációt.",
"last_save": "Utolsó mentés:",
"saving": "Mentés...",
"save": "Konfiguráció mentése",
"section_xp": "XP Logika",
"section_conversion": "Konverziós Logika",
"section_penalty": "Büntetési Logika",
"section_rewards": "Szint Jutalmak",
"calculator": "Hatás Kalkulátor",
"calculator_desc": "Állítsd be a paramétereket a becsült hatás megtekintéséhez",
"estimated_results": "Becsült Eredmények",
"daily_xp": "Napi XP",
"xp_for_level": "Szintlépéshez Szükséges XP",
"social_to_credit": "Social → Credit",
"days_to_level": "Szintlépés Napok Száma",
"raw_json": "Nyers JSON Szerkesztő",
"apply_json": "JSON Alkalmazása",
"updated": "Konfiguráció frissítve!",
"save_error": "Hiba történt a mentés során.",
"json_applied": "JSON alkalmazva a form mezőkre!",
"invalid_json": "Érvénytelen JSON: "
},
"params": {
"title": "Rendszerparaméterek",
"subtitle": "Gamification kategóriájú rendszerparaméterek",
"loading": "Paraméterek betöltése...",
"error": "Nem sikerült betölteni a rendszerparamétereket.",
"retry": "Újrapróbálkozás",
"no_items": "Nincsenek gamification rendszerparaméterek.",
"key": "Kulcs",
"value": "Érték",
"category": "Kategória",
"scope": "Hatósugár",
"scope_id": "Scope ID",
"actions": "Műveletek",
"edit": "Szerkesztés",
"edit_title": "Paraméter szerkesztése",
"value_label": "Érték",
"value_placeholder": "Paraméter értéke (JSON vagy sima szöveg)",
"json_detected": "🔹 JSON formátum érzékelve",
"text_value": "🔸 Szöveges érték",
"cancel": "Mégse",
"save": "Mentés",
"saving": "Mentés...",
"invalid_json": "Érvénytelen JSON formátum: ",
"save_error": "Hiba történt a mentés során.",
"updated": "frissítve!"
},
"ledger": {
"title": "Pontnapló",
"subtitle": "Gamification pontnapló böngészése",
"loading": "Pontnapló betöltése...",
"error": "Nem sikerült betölteni a pontnaplót.",
"user_id": "User ID",
"date_from": "Dátumtól",
"date_to": "Dátumig",
"reason": "Ok",
"search": "Keresés",
"clear": "Törlés",
"csv": "CSV",
"no_results": "Nincs találat a megadott szűrőkkel.",
"no_results_hint": "Próbálj más szűrési feltételeket használni.",
"id": "ID",
"user": "User",
"points": "Pont",
"penalty": "Büntetés",
"xp": "XP",
"source": "Forrás",
"date": "Dátum",
"prev": "Előző",
"next": "Következő",
"of": "/",
"showing": "mutatva",
"filtered": "(szűrve)",
"no_csv_data": "Nincs adat a CSV exportáláshoz.",
"csv_downloaded": "CSV letöltés elindítva."
},
"packages": {
"title": "Csomagok Kezelése",
"subtitle": "Előfizetési csomagok és funkciók kezelése — Free, Premium, Enterprise",
"loading": "Csomagok betöltése...",
"retry": "Újra",
"create_new": "Új Csomag",
"no_packages": "Még nincsenek csomagok",
"no_packages_desc": "Hozd létre az első előfizetési csomagot a kezdéshez.",
"create_first": "Első Csomag Létrehozása",
"popular": "Népszerű",
"fallback_badge": "Visszaesési",
"trial_badge": "Próba",
"month": "hó",
"feature_flags": "Elérhető Funkciók",
"edit": "Szerkesztés",
"duplicate": "Másolás",
"delete": "Törlés",
"set_as_default": "Beállítás alapértelmezettként",
"set_as_default_success": "alapértelmezett csomagként beállítva!",
"edit_title": "Csomag Szerkesztése",
"create_title": "Csomag Létrehozása",
"cancel": "Mégse",
"save": "Változtatások Mentése",
"create": "Létrehozás",
"save_success": "Csomag sikeresen frissítve!",
"delete_title": "Csomag Törlése",
"delete_confirm": "Biztosan törölni szeretnéd a \"{name}\" csomagot?",
"delete_btn": "Törlés",
"allowances": "Korlátok",
"max_vehicles": "Max Jármű",
"max_garages": "Max Garázs",
"max_users": "Max Dolgozó",
"monthly_credits": "Havi Kredit",
"tier_level": "Szint",
"form_name": "Rendszer Név",
"form_name_placeholder": "pl. premium_2024",
"form_display_name": "Megjelenítési Név",
"form_display_name_placeholder": "pl. Premium Plus",
"form_type": "Típus",
"type_private": "Magán",
"type_corporate": "Vállalati",
"form_tier_level": "Szintszám",
"form_tier_level_hint": "Magasabb szám = több funkció és magasabb rang",
"form_monthly_price": "Havi Díj",
"form_yearly_price": "Éves Díj",
"form_currency": "Pénznem",
"form_subtitle": "Felirat / Leírás",
"form_subtitle_placeholder": "pl. Ideális kisvállalkozásoknak",
"form_badge": "Jelvény Szöveg",
"form_badge_placeholder": "pl. Legnépszerűbb",
"form_is_custom": "Egyedi Csomag (nem publikus)",
"singleton_rules": "Egyediségi Szabályok",
"form_is_default_fallback": "Alapértelmezett Visszaesési Csomag — lejárt előfizetés esetén erre vált",
"form_trial_days": "Próba Napok Regisztrációnál",
"form_trial_days_hint": "Az új szervezetek ennyi ingyenes napot kapnak. Csak egy csomagnál lehet > 0.",
"per_region_pricing": "Régiók szerinti árazás",
"smart_calculator": "Okos Árkalkulátor",
"calc_net_price": "Nettó ár",
"calc_vat_rate": "ÁFA kulcs",
"calc_currency": "Pénznem",
"calc_net": "Nettó",
"calc_vat": "ÁFA",
"calc_gross": "Bruttó",
"calc_apply": "Alkalmaz a kiválasztott régióra",
"add_zone": "Új Zóna Hozzáadása",
"add_zone_select": "Válassz országkódot...",
"add_zone_already_exists": "Ez a régió már létezik a csomag árazásában!"
},
"permissions": {
"title": "Jogosultság Kezelés",
"subtitle": "Jogosultsági Mátrix — Szerepkör alapú hozzáférés-vezérlés",
"loading": "Jogosultságok betöltése...",
"error_title": "Nem sikerült betölteni a jogosultságokat",
"retry": "Újra",
"save_changes": "Változtatások Mentése",
"discard": "Elvetés",
"modified_count": "{count} módosítás",
"domain_filter": "Tartomány Szűrő (Sorok)",
"role_filter": "Szerepkör Szűrő (Oszlopok)",
"select_all": "Összes kiválasztása",
"deselect_all": "Összes elrejtése",
"all_domains": "Minden",
"permission": "Engedély",
"no_permissions": "Nincsenek engedélyek ebben a tartományban.",
"current_tier": "Aktuális Csomag",
"expires": "Lejárat",
"superadmin": "Superadmin",
"superadmin_desc": "Teljes rendszer hozzáférés — felhasználók, számlázás, robotok és rendszerkonfiguráció.",
"garages": "Garázsok",
"garages_desc": "Garázs szintű hozzáférés — járműkezelés, szervizfoglalás, ügyféladatok.",
"feature_flags": "Feature Flags",
"feature_flags_desc": "Előfizetési funkciók — a jelenlegi csomagod alapján ({tier}).",
"rbac_title": "RBAC Jogosultsági Mátrix",
"rbac_desc": "Szerepkör alapú hozzáférés-vezérlés — mely szerepkörök mely admin műveleteket végezhetik.",
"action": "Művelet"
}
}
}

View File

@@ -1,52 +0,0 @@
{
"loading": "Felhasználó adatainak betöltése...",
"retry": "Újra",
"back": "Vissza a felhasználókhoz",
"edit": "Felhasználó szerkesztése",
"edit_user": "Felhasználó szerkesztése",
"profile_tab": "Profil",
"memberships_tab": "Tagságok",
"account_info": "Fiók Információk",
"user_id": "Felhasználó ID",
"registration_date": "Regisztráció Dátuma",
"last_login": "Utolsó Belépés",
"ui_mode": "UI Mód",
"region": "Régió",
"currency": "Pénznem",
"subscription_info": "Előfizetés Információk",
"subscription_expires": "Lejárat Dátuma",
"scope_level": "Hatósugár Szint",
"scope_id": "Hatósugár ID",
"max_vehicles": "Max Járművek",
"max_garages": "Max Garázsok",
"personal_info": "Személyes Információk",
"last_name": "Vezetéknév",
"first_name": "Keresztnév",
"phone": "Telefon",
"birth_place": "Születési Hely",
"birth_date": "Születési Dátum",
"mothers_name": "Anyja Neve",
"mothers_first_name": "Anyja Keresztneve",
"address": "Cím",
"zip": "Irányítószám",
"city": "Város",
"street": "Utca",
"house_number": "Házszám",
"no_person_record": "Nem található személyes adat ehhez a felhasználóhoz.",
"memberships": "Szervezeti Tagságok",
"memberships_count": "{count} tagság",
"no_memberships": "Ez a felhasználó nem tagja egyetlen szervezetnek sem.",
"org_name": "Szervezet",
"org_role": "Szerepkör",
"member_status": "Státusz",
"joined_at": "Csatlakozott",
"verified": "Hitelesítve",
"verified_yes": "Igen",
"verified_no": "Nem",
"preferred_language": "Előnyben Részesített Nyelv",
"is_active": "Aktív",
"is_vip": "VIP",
"cancel": "Mégse",
"save": "Változtatások Mentése",
"saving": "Mentés..."
}

View File

@@ -1,46 +1,221 @@
{
"title": "Felhasználó Kezelés",
"subtitle": "Felhasználói lista, keresés, szűrők és csoportos műveletek",
"loading": "Felhasználók betöltése...",
"retry": "Újra",
"search_placeholder": "Keresés e-mail, név vagy telefonszám alapján...",
"all_statuses": "Összes státusz",
"status_active": "Aktív",
"status_inactive": "Inaktív",
"status_deleted": "Törölt",
"status_banned": "Kitiltva",
"all_roles": "Összes szerepkör",
"role_user": "Felhasználó",
"role_admin": "Admin",
"role_staff": "Munkatárs",
"role_superadmin": "Superadmin",
"all_plans": "Összes csomag",
"plan_free": "Ingyenes",
"plan_premium": "Prémium",
"plan_enterprise": "Vállalati",
"total_users": "Összes Felhasználó",
"active_users": "Aktív Felhasználók",
"deleted_users": "Törölt Felhasználók",
"banned_users": "Kitiltott Felhasználók",
"new_today": "Ma Regisztráltak",
"filtered_results": "Szűrt eredmények",
"selected_count": "{count} felhasználó kiválasztva",
"bulk_activate": "Aktiválás",
"bulk_deactivate": "Deaktiválás",
"clear_selection": "Kijelölés törlése",
"email": "E-mail",
"name": "Név",
"role": "Szerepkör",
"status": "Státusz",
"package": "Csomag",
"registration": "Regisztráció",
"language": "Nyelv",
"actions": "Műveletek",
"view": "Megtekintés",
"activate": "Aktiválás",
"deactivate": "Deaktiválás",
"no_results": "Nincs a keresésnek megfelelő felhasználó.",
"showing": "Mutató",
"prev": "Előző",
"next": "Következő"
"users": {
"title": "Felhasználó Kezelés",
"subtitle": "Felhasználói lista, keresés, szűrők és csoportos műveletek",
"loading": "Felhasználók betöltése...",
"retry": "Újra",
"search_placeholder": "Keresés e-mail, név vagy telefonszám alapján...",
"all_statuses": "Összes státusz",
"status_active": "Aktív",
"status_inactive": "Inaktív",
"status_deleted": "Törölt",
"status_banned": "Kitiltva",
"all_roles": "Összes szerepkör",
"role_user": "Felhasználó",
"role_admin": "Admin",
"role_staff": "Munkatárs",
"role_superadmin": "Superadmin",
"all_plans": "Összes csomag",
"plan_free": "Ingyenes",
"plan_premium": "Prémium",
"plan_enterprise": "Vállalati",
"total_users": "Összes Felhasználó",
"active_users": "Aktív Felhasználók",
"deleted_users": "Törölt Felhasználók",
"banned_users": "Kitiltott Felhasználók",
"new_today": "Ma Regisztráltak",
"filtered_results": "Szűrt eredmények",
"selected_count": "{count} felhasználó kiválasztva",
"bulk_activate": "Aktiválás",
"bulk_deactivate": "Deaktiválás",
"clear_selection": "Kijelölés törlése",
"email": "E-mail",
"name": "Név",
"role": "Szerepkör",
"status": "Státusz",
"package": "Csomag",
"registration": "Regisztráció",
"language": "Nyelv",
"actions": "Műveletek",
"view": "Megtekintés",
"activate": "Aktiválás",
"deactivate": "Deaktiválás",
"no_results": "Nincs a keresésnek megfelelő felhasználó.",
"showing": "Mutató",
"prev": "Előző",
"next": "Következő",
"details": {
"loading": "Felhasználó adatainak betöltése...",
"retry": "Újra",
"back": "Vissza a felhasználókhoz",
"edit": "Felhasználó szerkesztése",
"edit_user": "Felhasználó szerkesztése",
"profile_tab": "Profil",
"memberships_tab": "Tagságok",
"account_info": "Fiók Információk",
"user_id": "Felhasználó ID",
"registration_date": "Regisztráció Dátuma",
"last_login": "Utolsó Belépés",
"ui_mode": "UI Mód",
"region": "Régió",
"currency": "Pénznem",
"subscription_info": "Előfizetés Információk",
"subscription_expires": "Lejárat Dátuma",
"scope_level": "Hatósugár Szint",
"scope_id": "Hatósugár ID",
"max_vehicles": "Max Járművek",
"max_garages": "Max Garázsok",
"personal_info": "Személyes Információk",
"last_name": "Vezetéknév",
"first_name": "Keresztnév",
"phone": "Telefon",
"birth_place": "Születési Hely",
"birth_date": "Születési Dátum",
"mothers_name": "Anyja Neve",
"mothers_first_name": "Anyja Keresztneve",
"address": "Cím",
"zip": "Irányítószám",
"city": "Város",
"street": "Utca",
"house_number": "Házszám",
"no_person_record": "Nem található személyes adat ehhez a felhasználóhoz.",
"memberships": "Szervezeti Tagságok",
"memberships_count": "{count} tagság",
"no_memberships": "Ez a felhasználó nem tagja egyetlen szervezetnek sem.",
"org_name": "Szervezet",
"org_role": "Szerepkör",
"member_status": "Státusz",
"joined_at": "Csatlakozott",
"verified": "Hitelesítve",
"verified_yes": "Igen",
"verified_no": "Nem",
"preferred_language": "Előnyben Részesített Nyelv",
"is_active": "Aktív",
"is_vip": "VIP",
"cancel": "Mégse",
"save": "Változtatások Mentése",
"saving": "Mentés...",
"danger_zone": "Veszélyes Zóna",
"danger_zone_warning": "Ez a művelet visszafordíthatatlan. A felhasználó összes adata véglegesen eltávolításra kerül.",
"danger_zone_button": "Felhasználó végleges törlése",
"danger_zone_confirm_label": "A megerősítéshez gépeld be a felhasználó e-mail címét:",
"danger_zone_confirm_placeholder": "Add meg az e-mail címet...",
"danger_zone_confirm_button": "Megértettem, a felhasználó végleges törlése",
"danger_zone_cancel": "Mégse",
"danger_zone_success": "A felhasználó véglegesen törölve lett.",
"danger_zone_error_financial": "Nem törölhető: A felhasználónak pénzügyi rekordjai vannak.",
"danger_zone_error_not_superadmin": "Csak Superadminok végezhetnek végleges törlést.",
"danger_zone_error_generic": "Sikertelen törlés: {message}"
},
"persons": {
"title": "Személyek Kezelése",
"subtitle": "Személyek listája, keresés, szűrők és részletek",
"loading": "Személyek betöltése...",
"retry": "Újra",
"search_placeholder": "Keresés név, telefonszám vagy e-mail alapján...",
"all_ghost_statuses": "Összes szellem státusz",
"ghost_no": "Nem szellem",
"ghost_yes": "Szellem",
"all_active_statuses": "Összes aktív státusz",
"active_yes": "Aktív",
"active_no": "Inaktív",
"all_user_statuses": "Összes felhasználói státusz",
"has_user_yes": "Van felhasználó",
"has_user_no": "Nincs felhasználó",
"all_merged_statuses": "Összes egyesítési státusz",
"merged_no": "Nincs egyesítve",
"merged_yes": "Egyesítve",
"total_persons": "Összes Személy",
"active_persons": "Aktív Személyek",
"ghost_persons": "Szellem Személyek",
"merged_persons": "Egyesített Személyek",
"filtered_results": "Szűrt eredmények",
"name": "Név",
"phone": "Telefonszám",
"birth_date": "Születési Dátum",
"status": "Státusz",
"users_count": "Felhasználók",
"active_user": "Aktív Felhasználó",
"address": "Cím",
"actions": "Műveletek",
"active": "Aktív",
"inactive": "Inaktív",
"ghost": "Szellem",
"merged": "Egyesítve",
"view": "Megtekintés",
"no_results": "Nincs a keresésnek megfelelő személy.",
"showing": "Mutató",
"prev": "Előző",
"next": "Következő",
"details": {
"loading": "Személy adatainak betöltése...",
"retry": "Újra",
"back": "Vissza a listához",
"sales_agent": "Értékesítési Ügynök",
"edit": "Szerkesztés",
"personal_info": "Személyes Adatok",
"person_id": "Személy ID",
"uuid": "UUID",
"last_name": "Vezetéknév",
"first_name": "Keresztnév",
"birth_place": "Születési Hely",
"mothers_name": "Anyja Neve",
"mothers_last_name": "Anyja Vezetékneve",
"mothers_first_name": "Anyja Keresztneve",
"address": "Cím",
"zip": "Irányítószám",
"city": "Város",
"street": "Utca",
"house_number": "Házszám",
"stairwell": "Lépcsőház",
"floor": "Emelet",
"door": "Ajtó",
"parcel_id": "Helyrajzi Szám (HRSZ)",
"full_address": "Teljes Cím",
"system_info": "Rendszer Információk",
"is_sales_agent": "Értékesítési Ügynök",
"lifetime_xp": "Élettapasztalat (XP)",
"penalty_points": "Büntetőpontok",
"social_reputation": "Társadalmi Megítélés",
"created_at": "Létrehozva",
"updated_at": "Frissítve",
"deleted_at": "Törölve",
"identity_docs": "Személyazonosító Okmányok",
"ice_contact": "Vészhelyzeti Kapcsolattartó",
"connected_users": "Kapcsolódó Felhasználók",
"users_count": "{count} felhasználó kapcsolódik",
"no_users": "Ehhez a személyhez nem kapcsolódik felhasználó.",
"email": "E-mail",
"role": "Szerepkör",
"plan": "Csomag",
"language": "Nyelv",
"registered_at": "Regisztráció Dátuma",
"memberships": "Tagságok",
"memberships_count": "{count} tagság",
"no_memberships": "Nincs tagság.",
"org_name": "Szervezet Neve",
"org_type": "Típus",
"org_role": "Szerepkör",
"member_status": "Státusz",
"verified": "Ellenőrzött",
"joined_at": "Csatlakozás Dátuma",
"verified_yes": "Igen",
"verified_no": "Nem",
"owned_orgs": "Tulajdonolt Szervezetek",
"owned_orgs_count": "{count} szervezet",
"no_owned_orgs": "Nincs tulajdonolt szervezet.",
"merge_history": "Egyesítési Előzmények",
"no_merge_history": "Nincs egyesítési előzmény.",
"merged_into": "Egyesítve ebbe:",
"merged_at": "Egyesítés Dátuma",
"edit_title": "Személy Szerkesztése",
"status_section": "Státusz",
"is_active": "Aktív",
"is_ghost": "Szellem",
"cancel": "Mégse",
"saving": "Mentés...",
"save": "Mentés"
}
}
}
}

View File

@@ -21,27 +21,15 @@ export default defineNuxtConfig({
{
code: 'hu', iso: 'hu-HU', name: 'Magyar',
files: [
'hu/common.json', 'hu/menu.json', 'hu/providers.json', 'hu/garages.json',
'hu/dashboard.json', 'hu/config.json', 'hu/badges.json', 'hu/levels.json',
'hu/point_rules.json', 'hu/seasons.json', 'hu/competitions.json',
'hu/leaderboard.json', 'hu/ledger.json', 'hu/params.json', 'hu/packages.json',
'hu/persons.json', 'hu/permissions.json', 'hu/users.json', 'hu/user_detail.json',
'hu/gamification_users.json', 'hu/gamification_user_detail.json',
'hu/garages-details.json', 'hu/garages-employees.json',
'hu/garages-fleet.json', 'hu/garages-analytics.json',
'hu/common.json', 'hu/menu.json', 'hu/dashboard.json', 'hu/providers.json',
'hu/garages.json', 'hu/users.json', 'hu/gamification.json', 'hu/system.json',
],
},
{
code: 'en', iso: 'en-GB', name: 'English',
files: [
'en/common.json', 'en/menu.json', 'en/providers.json', 'en/garages.json',
'en/dashboard.json', 'en/config.json', 'en/badges.json', 'en/levels.json',
'en/point_rules.json', 'en/seasons.json', 'en/competitions.json',
'en/leaderboard.json', 'en/ledger.json', 'en/params.json', 'en/packages.json',
'en/persons.json', 'en/permissions.json', 'en/users.json', 'en/user_detail.json',
'en/gamification_users.json', 'en/gamification_user_detail.json',
'en/garages-details.json', 'en/garages-employees.json',
'en/garages-fleet.json', 'en/garages-analytics.json',
'en/common.json', 'en/menu.json', 'en/dashboard.json', 'en/providers.json',
'en/garages.json', 'en/users.json', 'en/gamification.json', 'en/system.json',
],
},
{ code: 'de', iso: 'de-DE', file: 'de.json', name: 'Deutsch' },

View File

@@ -265,6 +265,32 @@
</svg>
<p class="text-sm text-slate-400">{{ $t('users.details.no_person_record') }}</p>
</div>
<!-- ============================================================ -->
<!-- Danger Zone (Superadmin only) -->
<!-- ============================================================ -->
<div v-if="isSuperadmin" class="border border-red-500/30 bg-red-500/5 rounded-xl p-6">
<div class="flex items-center gap-3 mb-4">
<div class="p-2 rounded-lg bg-red-500/10 text-red-400">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L4.082 16.5c-.77.833.192 2.5 1.732 2.5z" />
</svg>
</div>
<div>
<h3 class="text-base font-semibold text-red-400">{{ $t('users.details.danger_zone') }}</h3>
<p class="text-xs text-slate-400 mt-0.5">{{ $t('users.details.danger_zone_warning') }}</p>
</div>
</div>
<button
@click="openDangerModal"
class="inline-flex items-center gap-2 px-4 py-2 text-sm font-medium bg-red-600/20 text-red-300 hover:bg-red-600/30 border border-red-500/30 rounded-lg transition"
>
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" />
</svg>
{{ $t('users.details.danger_zone_button') }}
</button>
</div>
</div>
<!-- ============================================================ -->
@@ -570,6 +596,73 @@
</div>
</div>
<!-- ============================================================ -->
<!-- Danger Zone Modal (Double Opt-in) -->
<!-- ============================================================ -->
<div
v-if="showDangerModal"
class="fixed inset-0 z-50 flex items-center justify-center p-4"
>
<!-- Backdrop -->
<div class="absolute inset-0 bg-black/60 backdrop-blur-sm" @click="closeDangerModal"></div>
<!-- Modal -->
<div class="relative w-full max-w-md bg-slate-800 border border-red-500/30 rounded-2xl shadow-2xl">
<!-- Header -->
<div class="px-6 py-4 border-b border-red-500/20 flex items-center gap-3">
<div class="p-2 rounded-lg bg-red-500/10 text-red-400">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L4.082 16.5c-.77.833.192 2.5 1.732 2.5z" />
</svg>
</div>
<h3 class="text-lg font-semibold text-red-400">{{ $t('users.details.danger_zone') }}</h3>
</div>
<!-- Body -->
<div class="p-6 space-y-4">
<p class="text-sm text-slate-300">
{{ $t('users.details.danger_zone_warning') }}
</p>
<div class="bg-slate-700/50 rounded-lg p-3">
<p class="text-xs text-slate-400 mb-1">{{ $t('users.details.danger_zone_confirm_label') }}</p>
<p class="text-sm text-white font-mono">{{ user?.email }}</p>
</div>
<div>
<input
v-model="dangerConfirmEmail"
type="email"
:placeholder="$t('users.details.danger_zone_confirm_placeholder')"
class="w-full px-3 py-2 text-sm bg-slate-700/50 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-red-500/50 focus:border-red-500"
/>
</div>
</div>
<!-- Footer -->
<div class="px-6 py-4 border-t border-slate-700 flex items-center justify-end gap-3">
<button
@click="closeDangerModal"
:disabled="dangerDeleting"
class="px-4 py-2 text-sm font-medium text-slate-300 hover:text-white bg-slate-700/50 hover:bg-slate-700 rounded-lg transition disabled:opacity-50"
>
{{ $t('users.details.danger_zone_cancel') }}
</button>
<button
@click="executeHardDelete"
:disabled="dangerConfirmEmail !== user?.email || dangerDeleting"
class="inline-flex items-center gap-2 px-4 py-2 text-sm font-medium bg-red-600 text-white hover:bg-red-500 rounded-lg transition disabled:opacity-50 disabled:cursor-not-allowed"
>
<svg v-if="dangerDeleting" class="w-4 h-4 animate-spin" fill="none" viewBox="0 0 24 24">
<circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4" />
<path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z" />
</svg>
{{ $t('users.details.danger_zone_confirm_button') }}
</button>
</div>
</div>
</div>
<!-- ============================================================ -->
<!-- Notification Toast -->
<!-- ============================================================ -->
@@ -634,6 +727,11 @@ const editForm = ref({
person_birth_date: '',
})
// Danger Zone Modal
const showDangerModal = ref(false)
const dangerConfirmEmail = ref('')
const dangerDeleting = ref(false)
// Notification
const notification = ref({ show: false, type: 'success' as 'success' | 'error', message: '' })
@@ -691,6 +789,69 @@ const hasEditPermission = computed(() => {
return !!auth.user?.system_capabilities?.['users:edit']
})
const isSuperadmin = computed(() => {
return auth.user?.role === 'SUPERADMIN'
})
// Danger Zone functions
function openDangerModal() {
dangerConfirmEmail.value = ''
showDangerModal.value = true
}
function closeDangerModal() {
showDangerModal.value = false
dangerConfirmEmail.value = ''
}
async function executeHardDelete() {
if (dangerConfirmEmail.value !== user.value?.email) return
dangerDeleting.value = true
try {
const tokenCookie = useCookie('access_token')
const token = (tokenCookie.value || auth.token || '').trim()
const headers: Record<string, string> = {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
}
const res = await fetch(`/api/v1/admin/users/${userId}/hard`, {
method: 'DELETE',
headers,
})
if (!res.ok) {
const errData = await res.json().catch(() => ({}))
const detail = errData.detail || ''
if (res.status === 403) {
throw new Error('danger_zone_error_not_superadmin')
}
if (res.status === 400 && detail.includes('financial')) {
throw new Error('danger_zone_error_financial')
}
throw new Error(detail || `Delete failed: ${res.status}`)
}
closeDangerModal()
showNotification('success', 'danger_zone_success')
// Redirect to users list after a short delay
setTimeout(() => {
router.push('/users')
}, 2000)
} catch (e: any) {
const msg = e.message || 'danger_zone_error_generic'
// Check if it's a translation key
if (msg.startsWith('danger_zone_error')) {
showNotification('error', msg)
} else {
showNotification('error', 'danger_zone_error_generic')
}
} finally {
dangerDeleting.value = false
}
}
// API calls
async function fetchUser() {
loading.value = true
@@ -858,7 +1019,9 @@ async function saveEdit() {
// Notification helper
function showNotification(type: 'success' | 'error', message: string) {
notification.value = { show: true, type, message }
// If message is a translation key, translate it
const translated = $t(message.startsWith('danger_zone') ? `users.details.${message}` : message)
notification.value = { show: true, type, message: translated }
setTimeout(() => {
notification.value.show = false
}, 4000)
@@ -973,4 +1136,4 @@ function memberStatusDotClass(status: string): string {
onMounted(() => {
fetchUser()
})
</script>
</script>