garázs fejlesztés
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
{"id":"dev","timestamp":1783475444387}
|
||||
{"id":"dev","timestamp":1783500293953}
|
||||
@@ -1 +1 @@
|
||||
{"id":"dev","timestamp":1783475444387,"prerendered":[]}
|
||||
{"id":"dev","timestamp":1783500293953,"prerendered":[]}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
6
frontend_admin/.nuxt/nuxt.d.ts
vendored
6
frontend_admin/.nuxt/nuxt.d.ts
vendored
@@ -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" />
|
||||
|
||||
@@ -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";
|
||||
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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."
|
||||
}
|
||||
@@ -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: "
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
304
frontend_admin/i18n/locales/en/gamification.json
Normal file
304
frontend_admin/i18n/locales/en/gamification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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)"
|
||||
}
|
||||
@@ -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."
|
||||
}
|
||||
@@ -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..."
|
||||
}
|
||||
@@ -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."
|
||||
}
|
||||
@@ -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)"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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."
|
||||
}
|
||||
@@ -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."
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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!"
|
||||
}
|
||||
@@ -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!"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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..."
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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."
|
||||
}
|
||||
181
frontend_admin/i18n/locales/en/system.json
Normal file
181
frontend_admin/i18n/locales/en/system.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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..."
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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."
|
||||
}
|
||||
@@ -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: "
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
304
frontend_admin/i18n/locales/hu/gamification.json
Normal file
304
frontend_admin/i18n/locales/hu/gamification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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)"
|
||||
}
|
||||
@@ -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."
|
||||
}
|
||||
@@ -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..."
|
||||
}
|
||||
@@ -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."
|
||||
}
|
||||
@@ -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)"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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."
|
||||
}
|
||||
@@ -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."
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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!"
|
||||
}
|
||||
@@ -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!"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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..."
|
||||
}
|
||||
@@ -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 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"
|
||||
}
|
||||
}
|
||||
@@ -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."
|
||||
}
|
||||
181
frontend_admin/i18n/locales/hu/system.json
Normal file
181
frontend_admin/i18n/locales/hu/system.json
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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..."
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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' },
|
||||
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user