├── version.txt ├── setup ├── README.md ├── images │ ├── clutch.png │ ├── tires.png │ ├── air_filter.png │ ├── brake_parts.png │ ├── engine_oil.png │ ├── oil_filter.png │ ├── spark_plugs.png │ └── suspension_parts.png └── import.sql ├── changelog.txt ├── config ├── ui_config.json └── config.lua ├── fxmanifest.lua ├── locales ├── zh.json ├── ja.json ├── fa.json ├── th.json ├── ar.json ├── vi.json ├── en.json ├── et.json ├── tr.json ├── it.json ├── sv.json ├── cs.json ├── hu.json ├── nl.json ├── el.json ├── ru.json ├── sl.json ├── pt.json ├── pl.json ├── de.json ├── fi.json ├── es.json ├── lt.json └── fr.json ├── html ├── index.html └── style.css └── README.md /version.txt: -------------------------------------------------------------------------------- 1 | 1.2.6 -------------------------------------------------------------------------------- /setup/README.md: -------------------------------------------------------------------------------- 1 | MOVED TO https://code-wizards.gitbook.io/codewizards/installation 2 | -------------------------------------------------------------------------------- /changelog.txt: -------------------------------------------------------------------------------- 1 | 1.2.6 2 | 3 | Multi Job support added! now you can set multiple allowed jobs to service vehicles -------------------------------------------------------------------------------- /setup/images/clutch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeWizardsDev/wizard-mileage/HEAD/setup/images/clutch.png -------------------------------------------------------------------------------- /setup/images/tires.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeWizardsDev/wizard-mileage/HEAD/setup/images/tires.png -------------------------------------------------------------------------------- /setup/images/air_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeWizardsDev/wizard-mileage/HEAD/setup/images/air_filter.png -------------------------------------------------------------------------------- /setup/images/brake_parts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeWizardsDev/wizard-mileage/HEAD/setup/images/brake_parts.png -------------------------------------------------------------------------------- /setup/images/engine_oil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeWizardsDev/wizard-mileage/HEAD/setup/images/engine_oil.png -------------------------------------------------------------------------------- /setup/images/oil_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeWizardsDev/wizard-mileage/HEAD/setup/images/oil_filter.png -------------------------------------------------------------------------------- /setup/images/spark_plugs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeWizardsDev/wizard-mileage/HEAD/setup/images/spark_plugs.png -------------------------------------------------------------------------------- /setup/images/suspension_parts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeWizardsDev/wizard-mileage/HEAD/setup/images/suspension_parts.png -------------------------------------------------------------------------------- /config/ui_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "lang": "en", 3 | 4 | "cssVariables": { 5 | "glass-bg": "linear-gradient(135deg, #1a1a2ed7 0%, #16213ed7 100%)", 6 | "glass-border": "rgba(255, 255, 255, 0.15)", 7 | "text-primary": "#ffffff", 8 | "text-secondary": "rgba(255, 255, 255, 0.7)", 9 | "accent-blue": "#4dabf7", 10 | "accent-green": "#69db7c", 11 | "accent-orange": "#ffa94d", 12 | "accent-red": "#ff2f2f", 13 | "accent-purple": "#9775fa", 14 | "accent-yellow": "#faed75", 15 | "transition": "all 0.4s cubic-bezier(0.16, 1, 0.3, 1)" 16 | } 17 | } -------------------------------------------------------------------------------- /fxmanifest.lua: -------------------------------------------------------------------------------- 1 | fx_version 'cerulean' 2 | games { 'gta5' } 3 | 4 | author 'The_Hs5' 5 | 6 | description 'Display vehicle mileage, Service vehicle' 7 | version '1.2.6' 8 | ui_page 'html/index.html' 9 | 10 | dependency {'wizard-lib', 'oxmysql', 'ox_lib'} 11 | 12 | shared_scripts { 13 | '@ox_lib/init.lua', 14 | 'config/config.lua' 15 | } 16 | 17 | client_scripts { 18 | '@wizard-lib/client/functions.lua', 19 | 'client.lua' 20 | } 21 | 22 | server_scripts { 23 | '@wizard-lib/server/functions.lua', 24 | 'server.lua' 25 | } 26 | 27 | files { 28 | 'locales/*.json', 29 | 'config/ui_config.json', 30 | 'html/index.html', 31 | 'html/style.css', 32 | 'html/script.js' 33 | } 34 | 35 | lua54 'yes' 36 | -------------------------------------------------------------------------------- /setup/import.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE IF NOT EXISTS vehicle_mileage ( 2 | plate VARCHAR(50) PRIMARY KEY, 3 | mileage DOUBLE NOT NULL DEFAULT 0, 4 | last_oil_change DOUBLE NOT NULL DEFAULT 0, 5 | last_oil_filter_change DOUBLE NOT NULL DEFAULT 0, 6 | last_air_filter_change DOUBLE NOT NULL DEFAULT 0, 7 | last_tire_change DOUBLE NOT NULL DEFAULT 0, 8 | last_brakes_change DOUBLE NOT NULL DEFAULT 0, 9 | brake_wear DOUBLE NOT NULL DEFAULT 0, 10 | last_clutch_change DOUBLE NOT NULL DEFAULT 0, 11 | clutch_wear DOUBLE NOT NULL DEFAULT 0, 12 | original_drive_force FLOAT DEFAULT NULL, 13 | last_suspension_change DOUBLE NOT NULL DEFAULT 0, 14 | suspension_wear DOUBLE NOT NULL DEFAULT 0, 15 | original_suspension_force FLOAT DEFAULT NULL, 16 | original_suspension_raise FLOAT DEFAULT NULL, 17 | last_spark_plug_change DOUBLE NOT NULL DEFAULT 0, 18 | spark_plug_wear DOUBLE NOT NULL DEFAULT 0 19 | ); 20 | CREATE INDEX idx_vehicle_mileage_plate ON vehicle_mileage(plate); 21 | CREATE INDEX idx_vehicle_status ON vehicle_mileage(plate, mileage); 22 | 23 | CREATE TABLE IF NOT EXISTS mileage_settings ( 24 | player_id VARCHAR(50) PRIMARY KEY, 25 | mileage_visible BOOLEAN NOT NULL DEFAULT 1, 26 | mileage_size FLOAT NOT NULL DEFAULT 1.0, 27 | checkwear_size FLOAT NOT NULL DEFAULT 1.0, 28 | mileage_pos_x FLOAT NOT NULL DEFAULT 0.0, 29 | mileage_pos_y FLOAT NOT NULL DEFAULT 0.0, 30 | checkwear_pos_x FLOAT NOT NULL DEFAULT 0.0, 31 | checkwear_pos_y FLOAT NOT NULL DEFAULT 0.0 32 | ); -------------------------------------------------------------------------------- /locales/zh.json: -------------------------------------------------------------------------------- 1 | { 2 | "__author": "@AI", 3 | 4 | "ui": { 5 | "mileage": "里程", 6 | "unit_km": " 公里", 7 | "unit_miles": " 英里", 8 | 9 | "save": "保存", 10 | "edit": "编辑", 11 | "delete": "删除", 12 | "cancel": "取消", 13 | "close": "关闭", 14 | 15 | "mileage_meter_ui": "里程表界面", 16 | "checkwear_ui": "磨损检查界面", 17 | "show_mileage_meter": "显示里程表", 18 | "size": "大小", 19 | "position": "位置 (X, Y)", 20 | 21 | "vehicle_mileage_db": "车辆里程数据库", 22 | "edit_veh_data": "编辑车辆数据", 23 | "actions": "操作", 24 | "plate": "车牌", 25 | "last_oil_change": "上次换油", 26 | "last_filter_change": "上次更换机油滤清器", 27 | "last_air_filter_change": "上次更换空气滤清器", 28 | "last_tire_change": "上次更换轮胎", 29 | "last_brake_change": "上次更换刹车", 30 | "brake_wear": "刹车磨损", 31 | "last_clutch_change": "上次更换离合器", 32 | "clutch_wear": "离合器磨损", 33 | "last_sus_change": "上次更换悬挂", 34 | "last_plugs_change": "上次更换火花塞", 35 | 36 | "no_vehicles_found": "未找到车辆。", 37 | "confirm_delete_vehicle": "您确定要删除此车辆吗?", 38 | "vehicle_deleted_success": "车辆删除成功。", 39 | "failed_delete_vehicle": "删除车辆失败", 40 | "enter_valid_plate_mileage": "请输入有效的车牌和里程。", 41 | "must_be_equal_or_lower": "{label} 必须等于或小于里程。", 42 | "vehicle_data_updated": "车辆数据更新成功", 43 | "failed_update_vehicle_data": "车辆数据更新失败", 44 | 45 | "spark_plug": "火花塞", 46 | "oil": "机油寿命", 47 | "filter": "机油滤清器", 48 | "air_filter": "空气滤清器", 49 | "tire": "轮胎", 50 | "brake": "刹车", 51 | "suspension": "悬挂", 52 | "clutch": "离合器", 53 | 54 | "excellent": "优秀", 55 | "good": "良好", 56 | "warning": "警告", 57 | "critical": "严重", 58 | "disabled": "禁用" 59 | }, 60 | 61 | "target": { 62 | "changeoil": "更换机油中...", 63 | "changeoilfilter": "更换机油滤清器中...", 64 | "changeairfilter": "更换空气滤清器中...", 65 | "changetires": "更换轮胎中...", 66 | "changebrakes": "更换刹车", 67 | "changeclutch": "更换离合器", 68 | "changesuspension": "更换悬挂", 69 | "changesparkplug": "更换火花塞" 70 | }, 71 | "progress": { 72 | "changingoil": "更换机油中...", 73 | "changingoilfilter": "更换机油滤清器中...", 74 | "changingairfilter": "更换空气滤清器中...", 75 | "changingtires": "更换轮胎中...", 76 | "changingbrakes": "更换刹车中...", 77 | "changingclutch": "更换离合器中...", 78 | "changingsuspension": "更换悬挂中...", 79 | "changingsparkplug": "更换火花塞中..." 80 | }, 81 | "info": { 82 | "oil_changed": "车辆机油已成功更换", 83 | "filter_changed": "车辆机油滤清器已成功更换", 84 | "air_filter_changed": "车辆空气滤清器已成功更换", 85 | "tire_changed": "车辆轮胎已成功更换", 86 | "brakes_changed": "车辆刹车已成功更换", 87 | "clutch_changed": "车辆离合器已成功更换", 88 | "suspension_changed": "车辆悬挂已成功更换", 89 | "spark_plug_changed": "车辆火花塞已成功更换" 90 | }, 91 | "warning": { 92 | "checking_veh": "正在检查车辆...", 93 | "remaining_oil": "机油寿命为", 94 | "remaining_filter": "机油滤清器寿命为", 95 | "remaining_air_filter": "空气滤清器寿命为", 96 | "remaining_tire": "轮胎寿命为", 97 | "remaining_brakes": "刹车寿命为", 98 | "remaining_clutch": "离合器寿命为", 99 | "remaining_suspension": "悬挂寿命为", 100 | "remaining_spark_plug": "火花塞寿命为", 101 | "remaining": "剩余", 102 | "replace_need": "需要更换!", 103 | "replace_soon": "请尽快更换!", 104 | "replace_immediately": "请立即更换!", 105 | "engine_critical": "由于缺乏机油维护,发动机严重损坏!", 106 | "stalled": "发动机因离合器磨损而熄火!", 107 | "spark_plug_misfire": "发动机因火花塞故障而失火!" 108 | }, 109 | "error": { 110 | "not_mechanic": "您必须是机械师才能执行此操作", 111 | "low_grade": "您的技能不足以执行此操作", 112 | "not_in_vehicle": "您必须在车辆内", 113 | "in_vehicle": "您必须离开车辆", 114 | "not_found": "未找到车辆", 115 | "plate_not_found": "未找到车辆牌照", 116 | "not_owned": "此车辆无人拥有", 117 | 118 | "no_oil": "您没有机油", 119 | "no_oil_filter": "您没有机油滤清器", 120 | "no_air_filter": "您没有空气滤清器", 121 | "no_tires": "您没有备用轮胎", 122 | "no_brake_parts": "您没有刹车零件", 123 | "no_clutch": "您没有离合器零件", 124 | "no_suspension_parts": "您没有悬挂零件", 125 | "no_spark_plug": "您没有火花塞" 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /locales/ja.json: -------------------------------------------------------------------------------- 1 | { 2 | "__author": "@AI", 3 | 4 | "ui": { 5 | "mileage": "走行距離", 6 | "unit_km": " キロメートル", 7 | "unit_miles": " マイル", 8 | 9 | "save": "保存", 10 | "edit": "編集", 11 | "delete": "削除", 12 | "cancel": "キャンセル", 13 | "close": "閉じる", 14 | 15 | "mileage_meter_ui": "走行距離メーターUI", 16 | "checkwear_ui": "摩耗チェックUI", 17 | "show_mileage_meter": "走行距離メーターを表示", 18 | "size": "サイズ", 19 | "position": "位置 (X, Y)", 20 | 21 | "vehicle_mileage_db": "車両走行距離データベース", 22 | "edit_veh_data": "車両データを編集", 23 | "actions": "操作", 24 | "plate": "ナンバー", 25 | "last_oil_change": "最終オイル交換", 26 | "last_filter_change": "最終オイルフィルター交換", 27 | "last_air_filter_change": "最終エアフィルター交換", 28 | "last_tire_change": "最終タイヤ交換", 29 | "last_brake_change": "最終ブレーキ交換", 30 | "brake_wear": "ブレーキ摩耗", 31 | "last_clutch_change": "最終クラッチ交換", 32 | "clutch_wear": "クラッチ摩耗", 33 | "last_sus_change": "最終サスペンション交換", 34 | "last_plugs_change": "最終スパークプラグ交換", 35 | 36 | "no_vehicles_found": "車両が見つかりません。", 37 | "confirm_delete_vehicle": "この車両を削除してもよろしいですか?", 38 | "vehicle_deleted_success": "車両が正常に削除されました。", 39 | "failed_delete_vehicle": "車両の削除に失敗しました", 40 | "enter_valid_plate_mileage": "有効なナンバープレートと走行距離を入力してください。", 41 | "must_be_equal_or_lower": "{label}は走行距離と同じかそれ以下でなければなりません。", 42 | "vehicle_data_updated": "車両データが正常に更新されました", 43 | "failed_update_vehicle_data": "車両データの更新に失敗しました", 44 | 45 | "spark_plug": "スパークプラグ", 46 | "oil": "オイル寿命", 47 | "filter": "オイルフィルター", 48 | "air_filter": "エアフィルター", 49 | "tire": "タイヤ", 50 | "brake": "ブレーキ", 51 | "suspension": "サスペンション", 52 | "clutch": "クラッチ", 53 | 54 | "excellent": "優秀", 55 | "good": "良い", 56 | "warning": "警告", 57 | "critical": "重大", 58 | "disabled": "無効" 59 | }, 60 | 61 | "target": { 62 | "changeoil": "オイル交換中...", 63 | "changeoilfilter": "オイルフィルター交換中...", 64 | "changeairfilter": "エアフィルター交換中...", 65 | "changetires": "タイヤ交換中...", 66 | "changebrakes": "ブレーキ交換", 67 | "changeclutch": "クラッチ交換", 68 | "changesuspension": "サスペンション交換", 69 | "changesparkplug": "スパークプラグ交換" 70 | }, 71 | "progress": { 72 | "changingoil": "オイル交換中...", 73 | "changingoilfilter": "オイルフィルター交換中...", 74 | "changingairfilter": "エアフィルター交換中...", 75 | "changingtires": "タイヤ交換中...", 76 | "changingbrakes": "ブレーキ交換中...", 77 | "changingclutch": "クラッチ交換中...", 78 | "changingsuspension": "サスペンション交換中...", 79 | "changingsparkplug": "スパークプラグ交換中..." 80 | }, 81 | "info": { 82 | "oil_changed": "車のオイルが正常に交換されました", 83 | "filter_changed": "車のオイルフィルターが正常に交換されました", 84 | "air_filter_changed": "車のエアフィルターが正常に交換されました", 85 | "tire_changed": "車のタイヤが正常に交換されました", 86 | "brakes_changed": "車のブレーキが正常に交換されました", 87 | "clutch_changed": "車のクラッチが正常に交換されました", 88 | "suspension_changed": "車のサスペンションが正常に交換されました", 89 | "spark_plug_changed": "車のスパークプラグが正常に交換されました" 90 | }, 91 | "warning": { 92 | "checking_veh": "車両をチェック中...", 93 | "remaining_oil": "オイル寿命:", 94 | "remaining_filter": "オイルフィルター寿命:", 95 | "remaining_air_filter": "エアフィルター寿命:", 96 | "remaining_tire": "タイヤ寿命:", 97 | "remaining_brakes": "ブレーキ寿命:", 98 | "remaining_clutch": "クラッチ寿命:", 99 | "remaining_suspension": "サスペンション寿命:", 100 | "remaining_spark_plug": "スパークプラグ寿命:", 101 | "remaining": "残り", 102 | "replace_need": "交換が必要です!", 103 | "replace_soon": "すぐに交換してください!", 104 | "replace_immediately": "直ちに交換してください!", 105 | "engine_critical": "オイルメンテナンス不足によりエンジンが重大な損傷を受けています!", 106 | "stalled": "クラッチの摩耗によりエンジンが停止しました!", 107 | "spark_plug_misfire": "不良なスパークプラグによりエンジンが失火しています!" 108 | }, 109 | "error": { 110 | "not_mechanic": "これを行うにはメカニックである必要があります", 111 | "low_grade": "これを行うにはスキルが不足しています", 112 | "not_in_vehicle": "車両内にいる必要があります", 113 | "in_vehicle": "車両から降りる必要があります", 114 | "not_found": "車両が見つかりません", 115 | "plate_not_found": "車両のナンバープレートが見つかりません", 116 | "not_owned": "この車両は誰の所有でもありません", 117 | 118 | "no_oil": "エンジンオイルがありません", 119 | "no_oil_filter": "オイルフィルターがありません", 120 | "no_air_filter": "エアフィルターがありません", 121 | "no_tires": "交換用タイヤがありません", 122 | "no_brake_parts": "ブレーキ部品がありません", 123 | "no_clutch": "クラッチ部品がありません", 124 | "no_suspension_parts": "サスペンション部品がありません", 125 | "no_spark_plug": "スパークプラグがありません" 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /locales/fa.json: -------------------------------------------------------------------------------- 1 | { 2 | "__author":"@The_Hs5", 3 | 4 | 5 | 6 | "ui": { 7 | "mileage": "مسافت", 8 | "unit_km": " کیلومتر", 9 | "unit_miles": " مایل", 10 | 11 | "save": "ذخیره", 12 | "edit": "ویرایش", 13 | "delete": "حذف", 14 | "cancel": "لغو", 15 | "close": "بستن", 16 | 17 | "mileage_meter_ui": "رابط کیلومترشمار", 18 | "checkwear_ui": "رابط بررسی فرسودگی", 19 | "show_mileage_meter": "نمایش کیلومترشمار", 20 | "size": "اندازه", 21 | "position": "موقعیت (X، Y)", 22 | 23 | "vehicle_mileage_db": "پایگاه داده کیلومتر خودرو", 24 | "edit_veh_data": "ویرایش اطلاعات خودرو", 25 | "actions": "اقدامات", 26 | "plate": "پلاک", 27 | "last_oil_change": "آخرین تعویض روغن", 28 | "last_filter_change": "آخرین تعویض فیلتر روغن", 29 | "last_air_filter_change": "آخرین تعویض فیلتر هوا", 30 | "last_tire_change": "آخرین تعویض لاستیک", 31 | "last_brake_change": "آخرین تعویض ترمز", 32 | "brake_wear": "فرسودگی ترمز", 33 | "last_clutch_change": "آخرین تعویض کلاچ", 34 | "clutch_wear": "فرسودگی کلاچ", 35 | "last_sus_change": "آخرین تعویض سیستم تعلیق", 36 | "last_plugs_change": "آخرین تعویض شمع‌ها", 37 | 38 | "no_vehicles_found": "هیچ خودرویی یافت نشد.", 39 | "confirm_delete_vehicle": "آیا مطمئن هستید که می‌خواهید این خودرو را حذف کنید؟", 40 | "vehicle_deleted_success": "خودرو با موفقیت حذف شد.", 41 | "failed_delete_vehicle": "حذف خودرو ناموفق بود", 42 | "enter_valid_plate_mileage": "لطفاً پلاک و کیلومتر معتبر وارد کنید.", 43 | "must_be_equal_or_lower": "{label} باید برابر یا کمتر از کیلومتر باشد.", 44 | "vehicle_data_updated": "اطلاعات خودرو با موفقیت به‌روزرسانی شد", 45 | "failed_update_vehicle_data": "به‌روزرسانی اطلاعات خودرو ناموفق بود", 46 | 47 | "spark_plug": "شمع‌ها", 48 | "oil": "عمر روغن", 49 | "filter": "فیلتر روغن", 50 | "air_filter": "فیلتر هوا", 51 | "tire": "لاستیک‌ها", 52 | "brake": "ترمزها", 53 | "suspension": "سیستم تعلیق", 54 | "clutch": "کلاچ", 55 | 56 | "excellent": "عالی", 57 | "good": "خوب", 58 | "warning": "هشدار", 59 | "critical": "بحرانی", 60 | "disabled": "غیرفعال" 61 | }, 62 | 63 | "target": { 64 | "changeoil": "تعویض روغن", 65 | "changeoilfilter": "تعویض فیلتر روغن", 66 | "changeairfilter": "تعویض فیاتر هوا", 67 | "changetires": "تعویض لاستیک", 68 | "changebrakes": "سرویس ترمز", 69 | "changeclutch": "تعویض کلاچ", 70 | "changesuspension": "تعویض سیستم تعلیق", 71 | "changesparkplug": "تعویض شمع موتور" 72 | }, 73 | "progress": { 74 | "changingoil": "درحال تعویض روغن...", 75 | "changingoilfilter": "درحال تعویض فیلتر روغن...", 76 | "changingairfilter": "درحال تعویض فیلتر هوا...", 77 | "changingtires": "درحال تعویض لاستیک...", 78 | "changingbrakes": "درحال سرویس سیستم ترمز...", 79 | "changingclutch": "درحال تعویض کلاچ...", 80 | "changingsuspension": "درحال تعویض سیستم تعلیق...", 81 | "changingsparkplug": "درحال تعویض شمع موتور..." 82 | }, 83 | "info": { 84 | "oil_changed": "روغن با موفقیت تعویض شد", 85 | "filter_changed": "فیلتر روغن با موفقیت تعویض شد", 86 | "air_filter_changed": "فیلتر هوا با موفقیت تعویض شد", 87 | "tire_changed": "لاستیک با موفقیت تعویض شد", 88 | "brakes_changed": "ترمز با موفقیت سرویس شد", 89 | "clutch_changed": "کلاچ با موفقیت تعویض شد", 90 | "suspension_changed": "سیستم تعلیق با موفقیت تعویض شد", 91 | "spark_plug_changed": "شمع موتور با موفقیت تعویض شد" 92 | }, 93 | "warning": { 94 | "checking_veh": "در حال بررسی...", 95 | "remaining_oil": "عمر مانده روغن", 96 | "remaining_filter": "عمر مانده فیلتر روغن", 97 | "remaining_air_filter": "عمر مانده فیلتر هوا", 98 | "remaining_tire": "عمر مانده لاستیک", 99 | "remaining_brakes": "عمر مانده ترمز", 100 | "remaining_clutch": "عمر مانده کلاچ", 101 | "remaining_suspension": "عمر مانده سیستم تعلیق", 102 | "remaining_spark_plug": "عمر مانده شمع موتور", 103 | "remaining": "", 104 | "replace_need": "تعویض توصیه میشود", 105 | "replace_soon": "تعویض شود", 106 | "replace_immediately": "حتما تعویض شود", 107 | "engine_critical": "خودرو بخاطر تعویض نکردن روغن و یا فیلتر روغن، اسیب جدی دید", 108 | "stalled": "موتور به دلیل خرابی کلاچ خاموش شد!", 109 | "spark_plug_misfire": "موتور به دلیل خرابی شمع موتور دچار اختلال شده است!" 110 | }, 111 | "error": { 112 | "not_mechanic": "شما باید مکانیک باشید", 113 | "low_grade": "مهارت شما کافی نیست", 114 | "not_in_vehicle": "شما باید در خودرو باشید", 115 | "in_vehicle": "باید از وسیله نقلیه خود پیاده شوید", 116 | "not_found": "وسیله نقلیه پیدا نشد", 117 | "plate_not_found": "پلاک وسیله نقلیه پیدا نشد", 118 | "not_owned": "این خودرو متعلق به کسی نیست", 119 | 120 | "no_oil": "شما روغن موتور ندارید", 121 | "no_oil_filter": "شما فیلتر روغن ندارید", 122 | "no_air_filter": "شما فیلتر هوا ندارید", 123 | "no_tires": "شما لاستیک یدکی ندارید", 124 | "no_brake_parts": "شما قطعات ترمز ندارید", 125 | "no_clutch": "شما قطعات کلاچ ندارید", 126 | "no_suspension_parts": "شما قطعات سیستم تعلیق ندارید", 127 | "no_spark_plug": "شما شمع موتور ندارید" 128 | } 129 | } 130 | -------------------------------------------------------------------------------- /locales/th.json: -------------------------------------------------------------------------------- 1 | { 2 | "__author": "@AI", 3 | 4 | "ui": { 5 | "mileage": "ระยะทาง", 6 | "unit_km": " กม.", 7 | "unit_miles": " ไมล์", 8 | 9 | "save": "บันทึก", 10 | "edit": "แก้ไข", 11 | "delete": "ลบ", 12 | "cancel": "ยกเลิก", 13 | "close": "ปิด", 14 | 15 | "mileage_meter_ui": "Mileage Meter UI", 16 | "checkwear_ui": "CheckWear UI", 17 | "show_mileage_meter": "Show Mileage Meter", 18 | "size": "Size", 19 | "position": "Position (X, Y)", 20 | 21 | "vehicle_mileage_db": "Vehicle Mileage Database", 22 | "edit_veh_data": "Edit Vehicle Data", 23 | "actions": "Actions", 24 | "plate": "Plate", 25 | "last_oil_change": "Last Oil Change", 26 | "last_filter_change": "Last Oil Filter Change", 27 | "last_air_filter_change": "Last Air Filter Change", 28 | "last_tire_change": "Last Tire Change", 29 | "last_brake_change": "Last Brake Change", 30 | "brake_wear": "Brake Wear", 31 | "last_clutch_change": "Last Clutch Change", 32 | "clutch_wear": "Clutch Wear", 33 | "last_sus_change": "Last Suspension Change", 34 | "last_plugs_change": "Last SparkPlug Change", 35 | 36 | "no_vehicles_found": "ไม่พบรถยนต์", 37 | "confirm_delete_vehicle": "คุณแน่ใจหรือไม่ว่าต้องการลบรถคันนี้?", 38 | "vehicle_deleted_success": "ลบรถเรียบร้อยแล้ว", 39 | "failed_delete_vehicle": "ลบรถไม่สำเร็จ", 40 | "enter_valid_plate_mileage": "กรุณาใส่ป้ายทะเบียนและระยะทางที่ถูกต้อง", 41 | "must_be_equal_or_lower": "{label} ต้องเท่ากับหรือต่ำกว่าระยะทาง", 42 | "vehicle_data_updated": "อัปเดตข้อมูลรถเรียบร้อยแล้ว", 43 | "failed_update_vehicle_data": "อัปเดตข้อมูลรถไม่สำเร็จ", 44 | 45 | "spark_plug": "หัวเทียน", 46 | "oil": "อายุการใช้น้ำมันเครื่อง", 47 | "filter": "ไส้กรองน้ำมันเครื่อง", 48 | "air_filter": "ไส้กรองอากาศ", 49 | "tire": "ยางรถยนต์", 50 | "brake": "เบรก", 51 | "suspension": "ช่วงล่าง", 52 | "clutch": "คลัตช์", 53 | 54 | "excellent": "ยอดเยี่ยม", 55 | "good": "ดี", 56 | "warning": "คำเตือน", 57 | "critical": "วิกฤต", 58 | "disabled": "ปิดใช้งาน" 59 | }, 60 | 61 | "target": { 62 | "changeoil": "กำลังเปลี่ยนน้ำมันเครื่อง...", 63 | "changeoilfilter": "กำลังเปลี่ยนไส้กรองน้ำมันเครื่อง...", 64 | "changeairfilter": "กำลังเปลี่ยนไส้กรองอากาศ...", 65 | "changetires": "กำลังเปลี่ยนยาง...", 66 | "changebrakes": "เปลี่ยนเบรก", 67 | "changeclutch": "เปลี่ยนคลัตช์", 68 | "changesuspension": "เปลี่ยนช่วงล่าง", 69 | "changesparkplug": "เปลี่ยนหัวเทียน" 70 | }, 71 | "progress": { 72 | "changingoil": "กำลังเปลี่ยนน้ำมันเครื่อง...", 73 | "changingoilfilter": "กำลังเปลี่ยนไส้กรองน้ำมันเครื่อง...", 74 | "changingairfilter": "กำลังเปลี่ยนไส้กรองอากาศ...", 75 | "changingtires": "กำลังเปลี่ยนยาง...", 76 | "changingbrakes": "กำลังเปลี่ยนเบรก...", 77 | "changingclutch": "กำลังเปลี่ยนคลัตช์...", 78 | "changingsuspension": "กำลังเปลี่ยนช่วงล่าง...", 79 | "changingsparkplug": "กำลังเปลี่ยนหัวเทียน..." 80 | }, 81 | "info": { 82 | "oil_changed": "เปลี่ยนน้ำมันเครื่องเรียบร้อยแล้ว", 83 | "filter_changed": "เปลี่ยนไส้กรองน้ำมันเครื่องเรียบร้อยแล้ว", 84 | "air_filter_changed": "เปลี่ยนไส้กรองอากาศเรียบร้อยแล้ว", 85 | "tire_changed": "เปลี่ยนยางเรียบร้อยแล้ว", 86 | "brakes_changed": "เปลี่ยนเบรกเรียบร้อยแล้ว", 87 | "clutch_changed": "เปลี่ยนคลัตช์เรียบร้อยแล้ว", 88 | "suspension_changed": "เปลี่ยนช่วงล่างเรียบร้อยแล้ว", 89 | "spark_plug_changed": "เปลี่ยนหัวเทียนเรียบร้อยแล้ว" 90 | }, 91 | "warning": { 92 | "checking_veh": "กำลังตรวจสอบรถ...", 93 | "remaining_oil": "อายุการใช้น้ำมันเครื่องที่", 94 | "remaining_filter": "อายุการใช้งานไส้กรองน้ำมันเครื่องที่", 95 | "remaining_air_filter": "อายุการใช้งานไส้กรองอากาศที่", 96 | "remaining_tire": "อายุการใช้งานยางที่", 97 | "remaining_brakes": "อายุการใช้งานเบรกที่", 98 | "remaining_clutch": "อายุการใช้งานคลัตช์ที่", 99 | "remaining_suspension": "อายุการใช้งานช่วงล่างที่", 100 | "remaining_spark_plug": "อายุการใช้งานหัวเทียนที่", 101 | "remaining": "เหลือ", 102 | "replace_need": "ต้องเปลี่ยน!", 103 | "replace_soon": "เปลี่ยนเร็วๆ นี้!", 104 | "replace_immediately": "เปลี่ยนทันที!", 105 | "engine_critical": "เครื่องยนต์เสียหายอย่างรุนแรงเนื่องจากขาดการบำรุงรักษาน้ำมัน!", 106 | "stalled": "เครื่องยนต์ดับเนื่องจากคลัตช์สึกหรอ!", 107 | "spark_plug_misfire": "เครื่องยนต์ทำงานผิดปกติเนื่องจากหัวเทียนเสีย!" 108 | }, 109 | "error": { 110 | "not_mechanic": "คุณต้องเป็นช่างยนต์เพื่อทำสิ่งนี้", 111 | "low_grade": "คุณไม่มีทักษะเพียงพอที่จะทำสิ่งนี้", 112 | "not_in_vehicle": "คุณต้องอยู่ในรถ", 113 | "in_vehicle": "คุณต้องออกจากรถ", 114 | "not_found": "ไม่พบรถ", 115 | "plate_not_found": "ไม่พบป้ายทะเบียนรถ", 116 | "not_owned": "รถคันนี้ไม่มีเจ้าของ", 117 | 118 | "no_oil": "คุณไม่มีน้ำมันเครื่อง", 119 | "no_oil_filter": "คุณไม่มีไส้กรองน้ำมันเครื่อง", 120 | "no_air_filter": "คุณไม่มีไส้กรองอากาศ", 121 | "no_tires": "คุณไม่มียางสำรอง", 122 | "no_brake_parts": "คุณไม่มีอะไหล่เบรก", 123 | "no_clutch": "คุณไม่มีอะไหล่คลัตช์", 124 | "no_suspension_parts": "คุณไม่มีอะไหล่ช่วงล่าง", 125 | "no_spark_plug": "คุณไม่มีหัวเทียน" 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /locales/ar.json: -------------------------------------------------------------------------------- 1 | { 2 | "__author":"@abonan", 3 | 4 | 5 | 6 | "ui": { 7 | "mileage": "المسافة", 8 | "unit_km": " كم", 9 | "unit_miles": " ميل", 10 | 11 | "save": "حفظ", 12 | "edit": "تعديل", 13 | "delete": "حذف", 14 | "cancel": "إلغاء", 15 | "close": "إغلاق", 16 | 17 | "mileage_meter_ui": "واجهة عداد المسافة", 18 | "checkwear_ui": "واجهة فحص التآكل", 19 | "show_mileage_meter": "عرض عداد المسافة", 20 | "size": "الحجم", 21 | "position": "الموقع (X، Y)", 22 | 23 | "vehicle_mileage_db": "قاعدة بيانات عداد المسافة للمركبة", 24 | "edit_veh_data": "تعديل بيانات المركبة", 25 | "actions": "إجراءات", 26 | "plate": "اللوحة", 27 | "last_oil_change": "آخر تغيير زيت", 28 | "last_filter_change": "آخر تغيير فلتر الزيت", 29 | "last_air_filter_change": "آخر تغيير فلتر الهواء", 30 | "last_tire_change": "آخر تغيير إطارات", 31 | "last_brake_change": "آخر تغيير فرامل", 32 | "brake_wear": "تآكل الفرامل", 33 | "last_clutch_change": "آخر تغيير كلتش", 34 | "clutch_wear": "تآكل الكلتش", 35 | "last_sus_change": "آخر تغيير نظام التعليق", 36 | "last_plugs_change": "آخر تغيير شمعات الإشعال", 37 | 38 | "no_vehicles_found": "لم يتم العثور على مركبات.", 39 | "confirm_delete_vehicle": "هل أنت متأكد أنك تريد حذف هذه المركبة؟", 40 | "vehicle_deleted_success": "تم حذف المركبة بنجاح.", 41 | "failed_delete_vehicle": "فشل في حذف المركبة", 42 | "enter_valid_plate_mileage": "يرجى إدخال لوحة ورقم عداد صالحين.", 43 | "must_be_equal_or_lower": "{label} يجب أن يكون مساويًا أو أقل من العداد.", 44 | "vehicle_data_updated": "تم تحديث بيانات المركبة بنجاح", 45 | "failed_update_vehicle_data": "فشل في تحديث بيانات المركبة", 46 | 47 | "spark_plug": "شمعات الإشعال", 48 | "oil": "عمر الزيت", 49 | "filter": "فلتر الزيت", 50 | "air_filter": "فلتر الهواء", 51 | "tire": "الإطارات", 52 | "brake": "الفرامل", 53 | "suspension": "نظام التعليق", 54 | "clutch": "الكلتش", 55 | 56 | "excellent": "ممتاز", 57 | "good": "جيد", 58 | "warning": "تحذير", 59 | "critical": "حرج", 60 | "disabled": "معطل" 61 | }, 62 | 63 | "target": { 64 | "changeoil": "تغيير الزيت…", 65 | "changeoilfilter": "تغيير فلتر الزيت…", 66 | "changeairfilter": "تغيير فلتر الهواء…", 67 | "changetires": "تغيير الإطارات…", 68 | "changebrakes": "تغيير الفحمات", 69 | "changeclutch": "تغيير الكلتش", 70 | "changesuspension": "تغيير نظام التعليق", 71 | "changesparkplug": "تغيير شمعات الإشعال" 72 | }, 73 | "progress": { 74 | "changingoil": "جاري تغيير الزيت…", 75 | "changingoilfilter": "جاري تغيير فلتر الزيت…", 76 | "changingairfilter": "جاري تغيير فلتر الهواء…", 77 | "changingtires": "جاري تغيير الإطارات…", 78 | "changingbrakes": "جاري تغيير الفحمات…", 79 | "changingclutch": "جاري تغيير الكلتش…", 80 | "changingsuspension": "جاري تغيير نظام التعليق…", 81 | "changingsparkplug": "جاري تغيير شمعات الإشعال…" 82 | }, 83 | "info": { 84 | "oil_changed": "تم تغيير زيت المركبة بنجاح", 85 | "filter_changed": "تم تغيير فلتر زيت المركبة بنجاح", 86 | "air_filter_changed": "تم تغيير فلتر هواء المركبة بنجاح", 87 | "tire_changed": "تم تغيير إطارات المركبة بنجاح", 88 | "brakes_changed": "تم تغيير الفحمات المركبة بنجاح", 89 | "clutch_changed": "تم تغيير الكلتش المركبة بنجاح", 90 | "suspension_changed": "تم تغيير نظام تعليق المركبة بنجاح", 91 | "spark_plug_changed": "تم تغيير شمعات إشعال المركبة بنجاح" 92 | }, 93 | "warning": { 94 | "checking_veh": "فحص السيارة...", 95 | "remaining_oil": "عمر الزيت المتبقي عند", 96 | "remaining_filter": "عمر فلتر الزيت المتبقي عند", 97 | "remaining_air_filter": "عمر فلتر الهواء المتبقي عند", 98 | "remaining_tire": "عمر الإطار المتبقي عند", 99 | "remaining_brakes": "عمر الفحمات المتبقي عند", 100 | "remaining_clutch": "عمر الكلتش المتبقي عند", 101 | "remaining_suspension": "عمر نظام التعليق المتبقي عند", 102 | "remaining_spark_plug": "عمر شمعات الإشعال المتبقي عند", 103 | "remaining": "متبقي", 104 | "replace_need": "يحتاج إلى استبدال!", 105 | "replace_soon": "استبدال قريباً!", 106 | "replace_immediately": "استبدال فوراً!", 107 | "engine_critical": "المحرك تعرض لأضرار خطيرة بسبب نقص صيانة الزيت!", 108 | "stalled": "توقف المحرك بسبب تلف الكلتش!", 109 | "spark_plug_misfire": "المحرك يعاني من خلل بسبب شمعات إشعال معطوبة!" 110 | }, 111 | "error": { 112 | "not_mechanic": "يجب أن تكون ميكانيكي للقيام بذلك", 113 | "low_grade": "ليس لديك المهارة الكافية للقيام بذلك", 114 | "not_in_vehicle": "يجب أن تكون داخل مركبة", 115 | "in_vehicle": "يجب عليك الخروج من المركبة", 116 | "not_found": "لم يتم العثور على المركبة", 117 | "plate_not_found": "لم يتم العثور على لوحة المركبة", 118 | "not_owned": "هذه المركبة غير مملوكة لأي شخص", 119 | 120 | "no_oil": "ليس لديك زيت محرك", 121 | "no_oil_filter": "ليس لديك فلتر زيت", 122 | "no_air_filter": "ليس لديك فلتر هواء", 123 | "no_tires": "ليس لديك إطارات بديلة", 124 | "no_brake_parts": "ليس لديك قطع فحمات", 125 | "no_clutch": "ليس لديك قطع كلتش", 126 | "no_suspension_parts": "ليس لديك قطع نظام تعليق", 127 | "no_spark_plug": "ليس لديك شمعات إشعال" 128 | } 129 | } 130 | -------------------------------------------------------------------------------- /locales/vi.json: -------------------------------------------------------------------------------- 1 | { 2 | "__author": "@AI", 3 | 4 | "ui": { 5 | "mileage": "Số km đã đi", 6 | "unit_km": " Km", 7 | "unit_miles": " Dặm", 8 | 9 | "save": "Lưu", 10 | "edit": "Chỉnh sửa", 11 | "delete": "Xóa", 12 | "cancel": "Hủy", 13 | "close": "Đóng", 14 | 15 | "mileage_meter_ui": "Giao diện đồng hồ công tơ mét", 16 | "checkwear_ui": "Giao diện kiểm tra hao mòn", 17 | "show_mileage_meter": "Hiển thị đồng hồ công tơ mét", 18 | "size": "Kích thước", 19 | "position": "Vị trí (X, Y)", 20 | 21 | "vehicle_mileage_db": "Cơ sở dữ liệu số km xe", 22 | "edit_veh_data": "Chỉnh sửa dữ liệu xe", 23 | "actions": "Hành động", 24 | "plate": "Biển số", 25 | "last_oil_change": "Lần thay dầu gần nhất", 26 | "last_filter_change": "Lần thay lọc dầu gần nhất", 27 | "last_air_filter_change": "Lần thay lọc gió gần nhất", 28 | "last_tire_change": "Lần thay lốp gần nhất", 29 | "last_brake_change": "Lần thay phanh gần nhất", 30 | "brake_wear": "Mòn phanh", 31 | "last_clutch_change": "Lần thay ly hợp gần nhất", 32 | "clutch_wear": "Mòn ly hợp", 33 | "last_sus_change": "Lần thay hệ thống treo gần nhất", 34 | "last_plugs_change": "Lần thay bugi gần nhất", 35 | 36 | "no_vehicles_found": "Không tìm thấy xe.", 37 | "confirm_delete_vehicle": "Bạn có chắc muốn xóa xe này không?", 38 | "vehicle_deleted_success": "Xóa xe thành công.", 39 | "failed_delete_vehicle": "Xóa xe thất bại", 40 | "enter_valid_plate_mileage": "Vui lòng nhập biển số và số km hợp lệ.", 41 | "must_be_equal_or_lower": "{label} phải bằng hoặc nhỏ hơn số km.", 42 | "vehicle_data_updated": "Cập nhật dữ liệu xe thành công", 43 | "failed_update_vehicle_data": "Cập nhật dữ liệu xe thất bại", 44 | 45 | "spark_plug": "Bugi", 46 | "oil": "Tuổi thọ dầu", 47 | "filter": "Lọc dầu", 48 | "air_filter": "Lọc gió", 49 | "tire": "Lốp xe", 50 | "brake": "Phanh", 51 | "suspension": "Hệ thống treo", 52 | "clutch": "Ly hợp", 53 | 54 | "excellent": "Xuất sắc", 55 | "good": "Tốt", 56 | "warning": "Cảnh báo", 57 | "critical": "Nguy cấp", 58 | "disabled": "VÔ HIỆU HÓA" 59 | }, 60 | 61 | "target": { 62 | "changeoil": "Đang thay dầu...", 63 | "changeoilfilter": "Đang thay lọc dầu...", 64 | "changeairfilter": "Đang thay lọc gió...", 65 | "changetires": "Đang thay lốp...", 66 | "changebrakes": "Thay phanh", 67 | "changeclutch": "Thay ly hợp", 68 | "changesuspension": "Thay hệ thống treo", 69 | "changesparkplug": "Thay bugi" 70 | }, 71 | "progress": { 72 | "changingoil": "Đang thay dầu...", 73 | "changingoilfilter": "Đang thay lọc dầu...", 74 | "changingairfilter": "Đang thay lọc gió...", 75 | "changingtires": "Đang thay lốp...", 76 | "changingbrakes": "Đang thay phanh...", 77 | "changingclutch": "Đang thay ly hợp...", 78 | "changingsuspension": "Đang thay hệ thống treo...", 79 | "changingsparkplug": "Đang thay bugi..." 80 | }, 81 | "info": { 82 | "oil_changed": "Đã thay dầu xe thành công", 83 | "filter_changed": "Đã thay lọc dầu xe thành công", 84 | "air_filter_changed": "Đã thay lọc gió xe thành công", 85 | "tire_changed": "Đã thay lốp xe thành công", 86 | "brakes_changed": "Đã thay phanh xe thành công", 87 | "clutch_changed": "Đã thay ly hợp xe thành công", 88 | "suspension_changed": "Đã thay hệ thống treo xe thành công", 89 | "spark_plug_changed": "Đã thay bugi xe thành công" 90 | }, 91 | "warning": { 92 | "checking_veh": "Đang kiểm tra xe...", 93 | "remaining_oil": "Tuổi thọ dầu còn", 94 | "remaining_filter": "Tuổi thọ lọc dầu còn", 95 | "remaining_air_filter": "Tuổi thọ lọc gió còn", 96 | "remaining_tire": "Tuổi thọ lốp còn", 97 | "remaining_brakes": "Tuổi thọ phanh còn", 98 | "remaining_clutch": "Tuổi thọ ly hợp còn", 99 | "remaining_suspension": "Tuổi thọ hệ thống treo còn", 100 | "remaining_spark_plug": "Tuổi thọ bugi còn", 101 | "remaining": "còn lại", 102 | "replace_need": "Cần thay thế!", 103 | "replace_soon": "Sắp phải thay!", 104 | "replace_immediately": "Phải thay ngay!", 105 | "engine_critical": "Động cơ bị hư hỏng nghiêm trọng do thiếu bảo dưỡng dầu!", 106 | "stalled": "Động cơ chết máy do ly hợp bị mòn!", 107 | "spark_plug_misfire": "Động cơ bị đánh lửa sai do bugi hỏng!" 108 | }, 109 | "error": { 110 | "not_mechanic": "Bạn phải là thợ máy để làm việc này", 111 | "low_grade": "Bạn không đủ kỹ năng để làm việc này", 112 | "not_in_vehicle": "Bạn phải ở trong xe", 113 | "in_vehicle": "Bạn phải ra khỏi xe", 114 | "not_found": "Không tìm thấy xe", 115 | "plate_not_found": "Không tìm thấy biển số xe", 116 | "not_owned": "Chiếc xe này không thuộc sở hữu của ai", 117 | 118 | "no_oil": "Bạn không có dầu động cơ", 119 | "no_oil_filter": "Bạn không có lọc dầu", 120 | "no_air_filter": "Bạn không có lọc gió", 121 | "no_tires": "Bạn không có lốp thay thế", 122 | "no_brake_parts": "Bạn không có phụ tùng phanh", 123 | "no_clutch": "Bạn không có phụ tùng ly hợp", 124 | "no_suspension_parts": "Bạn không có phụ tùng hệ thống treo", 125 | "no_spark_plug": "Bạn không có bugi" 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /locales/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "__author":"@The_Hs5", 3 | 4 | 5 | 6 | "ui": { 7 | "mileage": "Mileage", 8 | "unit_km": " KM", 9 | "unit_miles": " Miles", 10 | 11 | "save": "Save", 12 | "edit": "Edit", 13 | "delete": "Delete", 14 | "cancel": "Cancel", 15 | "close": "Close", 16 | 17 | "mileage_meter_ui": "Mileage Meter UI", 18 | "checkwear_ui": "CheckWear UI", 19 | "show_mileage_meter": "Show Mileage Meter", 20 | "size": "Size", 21 | "position": "Position (X, Y)", 22 | 23 | "vehicle_mileage_db": "Vehicle Mileage Database", 24 | "edit_veh_data": "Edit Vehicle Data", 25 | "actions": "Actions", 26 | "plate": "Plate", 27 | "last_oil_change": "Last Oil Change", 28 | "last_filter_change": "Last Oil Filter Change", 29 | "last_air_filter_change": "Last Air Filter Change", 30 | "last_tire_change": "Last Tire Change", 31 | "last_brake_change": "Last Brake Change", 32 | "brake_wear": "Brake Wear", 33 | "last_clutch_change": "Last Clutch Change", 34 | "clutch_wear": "Clutch Wear", 35 | "last_sus_change": "Last Suspension Change", 36 | "last_plugs_change": "Last SparkPlug Change", 37 | 38 | "no_vehicles_found": "No vehicles found.", 39 | "confirm_delete_vehicle": "Are you sure you want to delete this vehicle?", 40 | "vehicle_deleted_success": "Vehicle deleted successfully.", 41 | "failed_delete_vehicle": "Failed to delete vehicle", 42 | "enter_valid_plate_mileage": "Please enter valid plate and mileage.", 43 | "must_be_equal_or_lower": "{label} must be equal or lower than Mileage.", 44 | "vehicle_data_updated": "Vehicle data updated successfully", 45 | "failed_update_vehicle_data": "Failed to update vehicle data", 46 | 47 | "spark_plug": "Spark Plugs", 48 | "oil": "Oil Life", 49 | "filter": "Oil Filter", 50 | "air_filter": "Air Filter", 51 | "tire": "Tires", 52 | "brake": "Brakes", 53 | "suspension": "Suspension", 54 | "clutch": "Clutch", 55 | 56 | "excellent": "Excellent", 57 | "good": "Good", 58 | "warning": "Warning", 59 | "critical": "Critical", 60 | "disabled": "DISABLED" 61 | }, 62 | 63 | 64 | "target": { 65 | "changeoil": "Changing Oil...", 66 | "changeoilfilter": "Changing Oil Filter...", 67 | "changeairfilter": "Changing Air Filter...", 68 | "changetires": "Changing Tires...", 69 | "changebrakes": "Change Brakes", 70 | "changeclutch": "Change Clutch", 71 | "changesuspension": "Change Suspension", 72 | "changesparkplug": "Change Spark Plugs" 73 | }, 74 | "progress": { 75 | "changingoil": "Changing Oil...", 76 | "changingoilfilter": "Changing Oil Filter...", 77 | "changingairfilter": "Changing Air Filter...", 78 | "changingtires": "Changing Tires...", 79 | "changingbrakes": "Changing Brakes...", 80 | "changingclutch": "Changing Clutch...", 81 | "changingsuspension": "Changing Suspension...", 82 | "changingsparkplug": "Changing Spark Plugs..." 83 | }, 84 | 85 | 86 | "info": { 87 | "oil_changed": "Vehicle Oil has been successfully changed", 88 | "filter_changed": "Vehicle Oil Filter has been successfully changed", 89 | "air_filter_changed": "Vehicle Air Filter has been successfully changed", 90 | "tire_changed": "Vehicle Tires has been successfully changed", 91 | "brakes_changed": "Vehicle Brakes have been successfully changed", 92 | "clutch_changed": "Vehicle Clutch have been successfully changed", 93 | "suspension_changed": "Vehicle Suspension has been successfully changed", 94 | "spark_plug_changed": "Vehicle Spark Plugs have been successfully changed" 95 | }, 96 | "warning": { 97 | "checking_veh": "Checking vehicle...", 98 | "remaining_oil": "Oil life at", 99 | "remaining_filter": "Oil filter life at", 100 | "remaining_air_filter": "Air filter life at", 101 | "remaining_tire": "Tire life at", 102 | "remaining_brakes": "Brake life at", 103 | "remaining_clutch": "Clutch life at", 104 | "remaining_suspension": "Suspension life at", 105 | "remaining_spark_plug": "Spark plug life at", 106 | "remaining": "remaining", 107 | "replace_need": "Replace needed!", 108 | "replace_soon": "Replace soon!", 109 | "replace_immediately": "Replace immediately!", 110 | "engine_critical": "Engine is critically damaged due to lack of oil maintenance!", 111 | "stalled": "Engine stalled because of worn out clutch!", 112 | "spark_plug_misfire": "Engine is misfiring due to faulty spark plugs!" 113 | }, 114 | "error": { 115 | "not_mechanic": "You must be a mechanic to do this", 116 | "low_grade": "You are not skillfull enough to do this", 117 | "not_in_vehicle": "You must be in a vehicle", 118 | "in_vehicle": "You must exit your vehicle", 119 | "not_found": "Vehicle not found", 120 | "plate_not_found": "Vehicle plate not found", 121 | "not_owned": "This vehicle is not owned by anyone", 122 | 123 | "no_oil": "You don't have engine oil", 124 | "no_oil_filter": "You don't have an oil filter", 125 | "no_air_filter": "You don't have an air filter", 126 | "no_tires": "You don't have replacement tires", 127 | "no_brake_parts": "You don't have brake parts", 128 | "no_clutch": "You don't have clutch parts", 129 | "no_suspension_parts": "You don't have suspension parts", 130 | "no_spark_plug": "You don't have spark plugs" 131 | } 132 | } -------------------------------------------------------------------------------- /locales/et.json: -------------------------------------------------------------------------------- 1 | { 2 | "__author": "@AI", 3 | 4 | "ui": { 5 | "mileage": "Läbisõit", 6 | "unit_km": " Km", 7 | "unit_miles": " Miil", 8 | 9 | "save": "Salvesta", 10 | "edit": "Muuda", 11 | "delete": "Kustuta", 12 | "cancel": "Tühista", 13 | "close": "Sulge", 14 | 15 | "mileage_meter_ui": "Läbisõidu mõõdiku liides", 16 | "checkwear_ui": "Kulumise kontrolli liides", 17 | "show_mileage_meter": "Näita läbisõidu mõõdikut", 18 | "size": "Suurus", 19 | "position": "Asukoht (X, Y)", 20 | 21 | "vehicle_mileage_db": "Sõiduki läbisõidu andmebaas", 22 | "edit_veh_data": "Muuda sõiduki andmeid", 23 | "actions": "Tegevused", 24 | "plate": "Numbrimärk", 25 | "last_oil_change": "Viimane õlivahetus", 26 | "last_filter_change": "Viimane õlifiltri vahetus", 27 | "last_air_filter_change": "Viimane õhufiltri vahetus", 28 | "last_tire_change": "Viimane rehvide vahetus", 29 | "last_brake_change": "Viimane pidurite vahetus", 30 | "brake_wear": "Pidurite kulumine", 31 | "last_clutch_change": "Viimane siduri vahetus", 32 | "clutch_wear": "Siduri kulumine", 33 | "last_sus_change": "Viimane vedrustuse vahetus", 34 | "last_plugs_change": "Viimane süüteküünalde vahetus", 35 | 36 | "no_vehicles_found": "Sõidukeid ei leitud.", 37 | "confirm_delete_vehicle": "Kas olete kindel, et soovite selle sõiduki kustutada?", 38 | "vehicle_deleted_success": "Sõiduk kustutati edukalt.", 39 | "failed_delete_vehicle": "Sõiduki kustutamine ebaõnnestus", 40 | "enter_valid_plate_mileage": "Palun sisestage kehtiv number ja läbisõit.", 41 | "must_be_equal_or_lower": "{label} peab olema võrdne või väiksem kui läbisõit.", 42 | "vehicle_data_updated": "Sõiduki andmed uuendati edukalt", 43 | "failed_update_vehicle_data": "Sõiduki andmete uuendamine ebaõnnestus", 44 | 45 | "spark_plug": "Süüteküünlad", 46 | "oil": "Õli eluiga", 47 | "filter": "Õlifilter", 48 | "air_filter": "Õhufilter", 49 | "tire": "Rehvid", 50 | "brake": "Pidurid", 51 | "suspension": "Vedrustus", 52 | "clutch": "Sidur", 53 | 54 | "excellent": "Suurepärane", 55 | "good": "Hea", 56 | "warning": "Hoiatus", 57 | "critical": "Kriitiline", 58 | "disabled": "KEELATUD" 59 | }, 60 | 61 | "target": { 62 | "changeoil": "Õli vahetamine...", 63 | "changeoilfilter": "Õlifiltri vahetamine...", 64 | "changeairfilter": "Õhufiltri vahetamine...", 65 | "changetires": "Rehvide vahetamine...", 66 | "changebrakes": "Pidurite vahetus", 67 | "changeclutch": "Siduri vahetus", 68 | "changesuspension": "Vedrustuse vahetus", 69 | "changesparkplug": "Süüteküünalde vahetus" 70 | }, 71 | "progress": { 72 | "changingoil": "Õli vahetamine...", 73 | "changingoilfilter": "Õlifiltri vahetamine...", 74 | "changingairfilter": "Õhufiltri vahetamine...", 75 | "changingtires": "Rehvide vahetamine...", 76 | "changingbrakes": "Pidurite vahetamine...", 77 | "changingclutch": "Siduri vahetamine...", 78 | "changingsuspension": "Vedrustuse vahetamine...", 79 | "changingsparkplug": "Süüteküünalde vahetamine..." 80 | }, 81 | "info": { 82 | "oil_changed": "Sõiduki õli on edukalt vahetatud", 83 | "filter_changed": "Sõiduki õlifilter on edukalt vahetatud", 84 | "air_filter_changed": "Sõiduki õhufilter on edukalt vahetatud", 85 | "tire_changed": "Sõiduki rehvid on edukalt vahetatud", 86 | "brakes_changed": "Sõiduki pidurid on edukalt vahetatud", 87 | "clutch_changed": "Sõiduki sidur on edukalt vahetatud", 88 | "suspension_changed": "Sõiduki vedrustus on edukalt vahetatud", 89 | "spark_plug_changed": "Sõiduki süüteküünlad on edukalt vahetatud" 90 | }, 91 | "warning": { 92 | "checking_veh": "Sõiduki kontrollimine...", 93 | "remaining_oil": "Õli eluiga on", 94 | "remaining_filter": "Õlifiltri eluiga on", 95 | "remaining_air_filter": "Õhufiltri eluiga on", 96 | "remaining_tire": "Rehvide eluiga on", 97 | "remaining_brakes": "Pidurite eluiga on", 98 | "remaining_clutch": "Siduri eluiga on", 99 | "remaining_suspension": "Vedrustuse eluiga on", 100 | "remaining_spark_plug": "Süüteküünalde eluiga on", 101 | "remaining": "jäänud", 102 | "replace_need": "Vajab vahetust!", 103 | "replace_soon": "Vahetage varsti!", 104 | "replace_immediately": "Vahetage kohe!", 105 | "engine_critical": "Mootor on kriitiliselt kahjustatud õlita hoolduse puudumise tõttu!", 106 | "stalled": "Mootor seiskus kulunud siduri tõttu!", 107 | "spark_plug_misfire": "Mootor töötab halvasti vigaste süüteküünalde tõttu!" 108 | }, 109 | "error": { 110 | "not_mechanic": "Selle tegemiseks peate olema mehaanik", 111 | "low_grade": "Teil pole selleks piisavalt oskusi", 112 | "not_in_vehicle": "Peate olema sõidukis", 113 | "in_vehicle": "Peate sõidukist väljuma", 114 | "not_found": "Sõidukit ei leitud", 115 | "plate_not_found": "Sõiduki numbrimärki ei leitud", 116 | "not_owned": "See sõiduk ei kuulu kellelegi", 117 | 118 | "no_oil": "Teil pole mootoriõli", 119 | "no_oil_filter": "Teil pole õlifiltrit", 120 | "no_air_filter": "Teil pole õhufiltrit", 121 | "no_tires": "Teil pole varurehve", 122 | "no_brake_parts": "Teil pole piduriosasid", 123 | "no_clutch": "Teil pole siduriosasid", 124 | "no_suspension_parts": "Teil pole vedrustuse osi", 125 | "no_spark_plug": "Teil pole süüteküünlaid" 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /locales/tr.json: -------------------------------------------------------------------------------- 1 | { 2 | "__author":"@AI", 3 | 4 | 5 | 6 | "ui": { 7 | "mileage": "Kilometre", 8 | "unit_km": " Km", 9 | "unit_miles": " Mil", 10 | 11 | "save": "Kaydet", 12 | "edit": "Düzenle", 13 | "delete": "Sil", 14 | "cancel": "İptal", 15 | "close": "Kapat", 16 | 17 | "mileage_meter_ui": "Kilometre Sayacı Arayüzü", 18 | "checkwear_ui": "Aşınma Kontrolü Arayüzü", 19 | "show_mileage_meter": "Kilometre Sayacını Göster", 20 | "size": "Boyut", 21 | "position": "Pozisyon (X, Y)", 22 | 23 | "vehicle_mileage_db": "Araç Kilometre Veritabanı", 24 | "edit_veh_data": "Araç Verilerini Düzenle", 25 | "actions": "Eylemler", 26 | "plate": "Plaka", 27 | "last_oil_change": "Son Yağ Değişimi", 28 | "last_filter_change": "Son Yağ Filtresi Değişimi", 29 | "last_air_filter_change": "Son Hava Filtresi Değişimi", 30 | "last_tire_change": "Son Lastik Değişimi", 31 | "last_brake_change": "Son Fren Değişimi", 32 | "brake_wear": "Fren Aşınması", 33 | "last_clutch_change": "Son Debriyaj Değişimi", 34 | "clutch_wear": "Debriyaj Aşınması", 35 | "last_sus_change": "Son Süspansiyon Değişimi", 36 | "last_plugs_change": "Son Buji Değişimi", 37 | 38 | "no_vehicles_found": "Araç bulunamadı.", 39 | "confirm_delete_vehicle": "Bu aracı silmek istediğinizden emin misiniz?", 40 | "vehicle_deleted_success": "Araç başarıyla silindi.", 41 | "failed_delete_vehicle": "Araç silme başarısız oldu", 42 | "enter_valid_plate_mileage": "Lütfen geçerli plaka ve kilometre girin.", 43 | "must_be_equal_or_lower": "{label} Kilometreden eşit veya düşük olmalıdır.", 44 | "vehicle_data_updated": "Araç verileri başarıyla güncellendi", 45 | "failed_update_vehicle_data": "Araç verileri güncellenemedi", 46 | 47 | "spark_plug": "Bujiler", 48 | "oil": "Yağ Ömrü", 49 | "filter": "Yağ Filtresi", 50 | "air_filter": "Hava Filtresi", 51 | "tire": "Lastikler", 52 | "brake": "Frenler", 53 | "suspension": "Süspansiyon", 54 | "clutch": "Debriyaj", 55 | 56 | "excellent": "Mükemmel", 57 | "good": "İyi", 58 | "warning": "Uyarı", 59 | "critical": "Kritik", 60 | "disabled": "DEVRE DIŞI" 61 | }, 62 | 63 | "target": { 64 | "changeoil": "Yağ Değiştiriliyor...", 65 | "changeoilfilter": "Yağ Filtresi Değiştiriliyor...", 66 | "changeairfilter": "Hava Filtresi Değiştiriliyor...", 67 | "changetires": "Lastikler Değiştiriliyor...", 68 | "changebrakes": "Frenler Değiştiriliyor", 69 | "changeclutch": "Debriyaj Değiştiriliyor", 70 | "changesuspension": "Süspansiyon Değiştiriliyor", 71 | "changesparkplug": "Buji Değiştiriliyor" 72 | }, 73 | "progress": { 74 | "changingoil": "Yağ Değiştiriliyor...", 75 | "changingoilfilter": "Yağ Filtresi Değiştiriliyor...", 76 | "changingairfilter": "Hava Filtresi Değiştiriliyor...", 77 | "changingtires": "Lastikler Değiştiriliyor...", 78 | "changingbrakes": "Frenler Değiştiriliyor...", 79 | "changingclutch": "Debriyaj Değiştiriliyor...", 80 | "changingsuspension": "Süspansiyon Değiştiriliyor...", 81 | "changingsparkplug": "Buji Değiştiriliyor..." 82 | }, 83 | "info": { 84 | "oil_changed": "Araç yağı başarıyla değiştirildi", 85 | "filter_changed": "Araç yağ filtresi başarıyla değiştirildi", 86 | "air_filter_changed": "Araç hava filtresi başarıyla değiştirildi", 87 | "tire_changed": "Araç lastikleri başarıyla değiştirildi", 88 | "brakes_changed": "Araç frenleri başarıyla değiştirildi", 89 | "clutch_changed": "Araç debriyajı başarıyla değiştirildi", 90 | "suspension_changed": "Araç süspansiyonu başarıyla değiştirildi", 91 | "spark_plug_changed": "Araç bujileri başarıyla değiştirildi" 92 | }, 93 | "warning": { 94 | "checking_veh": "Araç kontrol ediliyor...", 95 | "remaining_oil": "Yağ ömrü", 96 | "remaining_filter": "Yağ filtresi ömrü", 97 | "remaining_air_filter": "Hava filtresi ömrü", 98 | "remaining_tire": "Lastik ömrü", 99 | "remaining_brakes": "Fren ömrü", 100 | "remaining_clutch": "Debriyaj ömrü", 101 | "remaining_suspension": "Süspansiyon ömrü", 102 | "remaining_spark_plug": "Buji ömrü", 103 | "remaining": "kaldı", 104 | "replace_need": "Değişim gerekli!", 105 | "replace_soon": "Yakında değiştirin!", 106 | "replace_immediately": "Hemen değiştirin!", 107 | "engine_critical": "Motor, yağ bakımı eksikliğinden kritik şekilde hasar gördü!", 108 | "stalled": "Debriyaj aşındığı için motor durdu!", 109 | "spark_plug_misfire": "Arızalı bujiler nedeniyle motor tekliyor!" 110 | }, 111 | "error": { 112 | "not_mechanic": "Bunu yapmak için tamirci olmalısın", 113 | "low_grade": "Bunu yapmak için yeterli yeteneğe sahip değilsin", 114 | "not_in_vehicle": "Bir araçta olmalısın", 115 | "in_vehicle": "Araçtan inmelisin", 116 | "not_found": "Araç bulunamadı", 117 | "plate_not_found": "Araç plakası bulunamadı", 118 | "not_owned": "Bu araç kimseye ait değil", 119 | 120 | "no_oil": "Motor yağına sahip değilsin", 121 | "no_oil_filter": "Yağ filtresine sahip değilsin", 122 | "no_air_filter": "Hava filtresine sahip değilsin", 123 | "no_tires": "Yedek lastiğe sahip değilsin", 124 | "no_brake_parts": "Fren parçalarına sahip değilsin", 125 | "no_clutch": "Debriyaj parçalarına sahip değilsin", 126 | "no_suspension_parts": "Süspansiyon parçalarına sahip değilsin", 127 | "no_spark_plug": "Bujilere sahip değilsin" 128 | } 129 | } -------------------------------------------------------------------------------- /locales/it.json: -------------------------------------------------------------------------------- 1 | { 2 | "__author": "@AI", 3 | 4 | "ui": { 5 | "mileage": "Chilometraggio", 6 | "unit_km": " Km", 7 | "unit_miles": " Miglia", 8 | 9 | "save": "Salva", 10 | "edit": "Modifica", 11 | "delete": "Elimina", 12 | "cancel": "Annulla", 13 | "close": "Chiudi", 14 | 15 | "mileage_meter_ui": "Interfaccia contachilometri", 16 | "checkwear_ui": "Interfaccia usura", 17 | "show_mileage_meter": "Mostra contachilometri", 18 | "size": "Dimensione", 19 | "position": "Posizione (X, Y)", 20 | 21 | "vehicle_mileage_db": "Database chilometraggio veicolo", 22 | "edit_veh_data": "Modifica dati veicolo", 23 | "actions": "Azioni", 24 | "plate": "Targa", 25 | "last_oil_change": "Ultimo cambio olio", 26 | "last_filter_change": "Ultimo cambio filtro olio", 27 | "last_air_filter_change": "Ultimo cambio filtro aria", 28 | "last_tire_change": "Ultimo cambio pneumatici", 29 | "last_brake_change": "Ultimo cambio freni", 30 | "brake_wear": "Usura freni", 31 | "last_clutch_change": "Ultimo cambio frizione", 32 | "clutch_wear": "Usura frizione", 33 | "last_sus_change": "Ultimo cambio sospensioni", 34 | "last_plugs_change": "Ultimo cambio candele", 35 | 36 | "no_vehicles_found": "Nessun veicolo trovato.", 37 | "confirm_delete_vehicle": "Sei sicuro di voler eliminare questo veicolo?", 38 | "vehicle_deleted_success": "Veicolo eliminato con successo.", 39 | "failed_delete_vehicle": "Impossibile eliminare il veicolo", 40 | "enter_valid_plate_mileage": "Inserisci targa e chilometraggio validi.", 41 | "must_be_equal_or_lower": "{label} deve essere uguale o inferiore al chilometraggio.", 42 | "vehicle_data_updated": "Dati veicolo aggiornati con successo", 43 | "failed_update_vehicle_data": "Impossibile aggiornare i dati del veicolo", 44 | 45 | "spark_plug": "Candele", 46 | "oil": "Durata olio", 47 | "filter": "Filtro olio", 48 | "air_filter": "Filtro aria", 49 | "tire": "Pneumatici", 50 | "brake": "Freni", 51 | "suspension": "Sospensioni", 52 | "clutch": "Frizione", 53 | 54 | "excellent": "Eccellente", 55 | "good": "Buono", 56 | "warning": "Avviso", 57 | "critical": "Critico", 58 | "disabled": "DISABILITATO" 59 | }, 60 | 61 | "target": { 62 | "changeoil": "Cambio olio...", 63 | "changeoilfilter": "Cambio filtro olio...", 64 | "changeairfilter": "Cambio filtro aria...", 65 | "changetires": "Cambio pneumatici...", 66 | "changebrakes": "Cambio freni", 67 | "changeclutch": "Cambio frizione", 68 | "changesuspension": "Cambio sospensioni", 69 | "changesparkplug": "Cambio candele" 70 | }, 71 | "progress": { 72 | "changingoil": "Cambio olio...", 73 | "changingoilfilter": "Cambio filtro olio...", 74 | "changingairfilter": "Cambio filtro aria...", 75 | "changingtires": "Cambio pneumatici...", 76 | "changingbrakes": "Cambio freni...", 77 | "changingclutch": "Cambio frizione...", 78 | "changingsuspension": "Cambio sospensioni...", 79 | "changingsparkplug": "Cambio candele..." 80 | }, 81 | "info": { 82 | "oil_changed": "Olio veicolo cambiato con successo", 83 | "filter_changed": "Filtro olio veicolo cambiato con successo", 84 | "air_filter_changed": "Filtro aria veicolo cambiato con successo", 85 | "tire_changed": "Pneumatici veicolo cambiati con successo", 86 | "brakes_changed": "Freni veicolo cambiati con successo", 87 | "clutch_changed": "Frizione veicolo cambiata con successo", 88 | "suspension_changed": "Sospensioni veicolo cambiate con successo", 89 | "spark_plug_changed": "Candele veicolo cambiate con successo" 90 | }, 91 | "warning": { 92 | "checking_veh": "Controllo veicolo...", 93 | "remaining_oil": "Durata olio a", 94 | "remaining_filter": "Durata filtro olio a", 95 | "remaining_air_filter": "Durata filtro aria a", 96 | "remaining_tire": "Durata pneumatici a", 97 | "remaining_brakes": "Durata freni a", 98 | "remaining_clutch": "Durata frizione a", 99 | "remaining_suspension": "Durata sospensioni a", 100 | "remaining_spark_plug": "Durata candele a", 101 | "remaining": "rimanente", 102 | "replace_need": "Sostituzione necessaria!", 103 | "replace_soon": "Sostituire presto!", 104 | "replace_immediately": "Sostituire immediatamente!", 105 | "engine_critical": "Motore gravemente danneggiato per mancanza di manutenzione dell'olio!", 106 | "stalled": "Motore bloccato a causa di frizione usurata!", 107 | "spark_plug_misfire": "Motore in misfire a causa di candele difettose!" 108 | }, 109 | "error": { 110 | "not_mechanic": "Devi essere un meccanico per fare questo", 111 | "low_grade": "Non hai abbastanza abilità per fare questo", 112 | "not_in_vehicle": "Devi essere in un veicolo", 113 | "in_vehicle": "Devi uscire dal veicolo", 114 | "not_found": "Veicolo non trovato", 115 | "plate_not_found": "Targa veicolo non trovata", 116 | "not_owned": "Questo veicolo non è di proprietà di nessuno", 117 | 118 | "no_oil": "Non hai olio motore", 119 | "no_oil_filter": "Non hai un filtro olio", 120 | "no_air_filter": "Non hai un filtro aria", 121 | "no_tires": "Non hai pneumatici di ricambio", 122 | "no_brake_parts": "Non hai parti dei freni", 123 | "no_clutch": "Non hai parti della frizione", 124 | "no_suspension_parts": "Non hai parti delle sospensioni", 125 | "no_spark_plug": "Non hai candele" 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /locales/sv.json: -------------------------------------------------------------------------------- 1 | { 2 | "__author":"@AI", 3 | 4 | "ui": { 5 | "mileage": "Mätarställning", 6 | "unit_km": " Km", 7 | "unit_miles": " Mil", 8 | 9 | "save": "Spara", 10 | "edit": "Redigera", 11 | "delete": "Ta bort", 12 | "cancel": "Avbryt", 13 | "close": "Stäng", 14 | 15 | "mileage_meter_ui": "Mätarställningsgränssnitt", 16 | "checkwear_ui": "Slitagekontrollgränssnitt", 17 | "show_mileage_meter": "Visa mätarställning", 18 | "size": "Storlek", 19 | "position": "Position (X, Y)", 20 | 21 | "vehicle_mileage_db": "Fordonets mätarställningsdatabas", 22 | "edit_veh_data": "Redigera fordonsdata", 23 | "actions": "Åtgärder", 24 | "plate": "Registreringsskylt", 25 | "last_oil_change": "Senaste oljebyte", 26 | "last_filter_change": "Senaste oljefilterbyte", 27 | "last_air_filter_change": "Senaste luftfilterbyte", 28 | "last_tire_change": "Senaste däckbyte", 29 | "last_brake_change": "Senaste bromsbyte", 30 | "brake_wear": "Bromsslitage", 31 | "last_clutch_change": "Senaste kopplingsbyte", 32 | "clutch_wear": "Kopplingsslitage", 33 | "last_sus_change": "Senaste fjädringsbyte", 34 | "last_plugs_change": "Senaste tändstiftsbyte", 35 | 36 | "no_vehicles_found": "Inga fordon hittades.", 37 | "confirm_delete_vehicle": "Är du säker på att du vill ta bort detta fordon?", 38 | "vehicle_deleted_success": "Fordonet har tagits bort.", 39 | "failed_delete_vehicle": "Misslyckades med att ta bort fordonet", 40 | "enter_valid_plate_mileage": "Ange giltig registreringsskylt och mätarställning.", 41 | "must_be_equal_or_lower": "{label} måste vara lika med eller lägre än mätarställningen.", 42 | "vehicle_data_updated": "Fordonsdata uppdaterades framgångsrikt", 43 | "failed_update_vehicle_data": "Misslyckades med att uppdatera fordonsdata", 44 | 45 | "spark_plug": "Tändstift", 46 | "oil": "Oljans livslängd", 47 | "filter": "Oljefilter", 48 | "air_filter": "Luftfilter", 49 | "tire": "Däck", 50 | "brake": "Bromsar", 51 | "suspension": "Fjädring", 52 | "clutch": "Koppling", 53 | 54 | "excellent": "Utmärkt", 55 | "good": "Bra", 56 | "warning": "Varning", 57 | "critical": "Kritiskt", 58 | "disabled": "AVAKTIVERAD" 59 | }, 60 | 61 | "target": { 62 | "changeoil": "Byter olja...", 63 | "changeoilfilter": "Byter oljefilter...", 64 | "changeairfilter": "Byter luftfilter...", 65 | "changetires": "Byter däck...", 66 | "changebrakes": "Byter bromsar", 67 | "changeclutch": "Byter koppling", 68 | "changesuspension": "Byter fjädring", 69 | "changesparkplug": "Byter tändstift" 70 | }, 71 | "progress": { 72 | "changingoil": "Byter olja...", 73 | "changingoilfilter": "Byter oljefilter...", 74 | "changingairfilter": "Byter luftfilter...", 75 | "changingtires": "Byter däck...", 76 | "changingbrakes": "Byter bromsar...", 77 | "changingclutch": "Byter koppling...", 78 | "changingsuspension": "Byter fjädring...", 79 | "changingsparkplug": "Byter tändstift..." 80 | }, 81 | "info": { 82 | "oil_changed": "Fordonets olja har bytts ut framgångsrikt", 83 | "filter_changed": "Fordonets oljefilter har bytts ut framgångsrikt", 84 | "air_filter_changed": "Fordonets luftfilter har bytts ut framgångsrikt", 85 | "tire_changed": "Fordonets däck har bytts ut framgångsrikt", 86 | "brakes_changed": "Fordonets bromsar har bytts ut framgångsrikt", 87 | "clutch_changed": "Fordonets koppling har bytts ut framgångsrikt", 88 | "suspension_changed": "Fordonets fjädring har bytts ut framgångsrikt", 89 | "spark_plug_changed": "Fordonets tändstift har bytts ut framgångsrikt" 90 | }, 91 | "warning": { 92 | "checking_veh": "Kontrollerar fordon...", 93 | "remaining_oil": "Oljans livslängd", 94 | "remaining_filter": "Oljefiltrets livslängd", 95 | "remaining_air_filter": "Luftfiltrets livslängd", 96 | "remaining_tire": "Däckets livslängd", 97 | "remaining_brakes": "Bromsens livslängd", 98 | "remaining_clutch": "Kopplingens livslängd", 99 | "remaining_suspension": "Fjädringens livslängd", 100 | "remaining_spark_plug": "Tändstiftets livslängd", 101 | "remaining": "kvar", 102 | "replace_need": "Byte krävs!", 103 | "replace_soon": "Byt snart!", 104 | "replace_immediately": "Byt omedelbart!", 105 | "engine_critical": "Motorn är allvarligt skadad på grund av bristande oljeservice!", 106 | "stalled": "Motorn stannade på grund av utsliten koppling!", 107 | "spark_plug_misfire": "Motorn misständer på grund av defekta tändstift!" 108 | }, 109 | "error": { 110 | "not_mechanic": "Du måste vara mekaniker för att göra detta", 111 | "low_grade": "Du har inte tillräcklig skicklighet för att göra detta", 112 | "not_in_vehicle": "Du måste vara i ett fordon", 113 | "in_vehicle": "Du måste gå ur ditt fordon", 114 | "not_found": "Fordon hittades inte", 115 | "plate_not_found": "Fordonets registreringsskylt hittades inte", 116 | "not_owned": "Detta fordon ägs inte av någon", 117 | "no_oil": "Du har ingen motorolja", 118 | "no_oil_filter": "Du har inget oljefilter", 119 | "no_air_filter": "Du har inget luftfilter", 120 | "no_tires": "Du har inga reservdäck", 121 | "no_brake_parts": "Du har inga bromsdelar", 122 | "no_clutch": "Du har inga kopplingsdelar", 123 | "no_suspension_parts": "Du har inga fjädringsdelar", 124 | "no_spark_plug": "Du har inga tändstift" 125 | } 126 | } -------------------------------------------------------------------------------- /locales/cs.json: -------------------------------------------------------------------------------- 1 | { 2 | "__author": "@AI", 3 | 4 | "ui": { 5 | "mileage": "Najeto kilometrů", 6 | "unit_km": " Km", 7 | "unit_miles": " Mil", 8 | 9 | "save": "Uložit", 10 | "edit": "Upravit", 11 | "delete": "Smazat", 12 | "cancel": "Zrušit", 13 | "close": "Zavřít", 14 | 15 | "mileage_meter_ui": "Rozhraní počítadla kilometrů", 16 | "checkwear_ui": "Rozhraní kontroly opotřebení", 17 | "show_mileage_meter": "Zobrazit počítadlo kilometrů", 18 | "size": "Velikost", 19 | "position": "Pozice (X, Y)", 20 | 21 | "vehicle_mileage_db": "Databáze najetých kilometrů vozidla", 22 | "edit_veh_data": "Upravit údaje o vozidle", 23 | "actions": "Akce", 24 | "plate": "SPZ", 25 | "last_oil_change": "Poslední výměna oleje", 26 | "last_filter_change": "Poslední výměna olejového filtru", 27 | "last_air_filter_change": "Poslední výměna vzduchového filtru", 28 | "last_tire_change": "Poslední výměna pneumatik", 29 | "last_brake_change": "Poslední výměna brzd", 30 | "brake_wear": "Opotřebení brzd", 31 | "last_clutch_change": "Poslední výměna spojky", 32 | "clutch_wear": "Opotřebení spojky", 33 | "last_sus_change": "Poslední výměna podvozku", 34 | "last_plugs_change": "Poslední výměna zapalovacích svíček", 35 | 36 | "no_vehicles_found": "Nebyly nalezeny žádné vozy.", 37 | "confirm_delete_vehicle": "Opravdu chcete smazat toto vozidlo?", 38 | "vehicle_deleted_success": "Vozidlo bylo úspěšně smazáno.", 39 | "failed_delete_vehicle": "Nepodařilo se smazat vozidlo", 40 | "enter_valid_plate_mileage": "Zadejte platnou SPZ a stav tachometru.", 41 | "must_be_equal_or_lower": "{label} musí být rovno nebo nižší než stav tachometru.", 42 | "vehicle_data_updated": "Data vozidla byla úspěšně aktualizována", 43 | "failed_update_vehicle_data": "Nepodařilo se aktualizovat data vozidla", 44 | 45 | "spark_plug": "Zapalovací svíčky", 46 | "oil": "Životnost oleje", 47 | "filter": "Olejový filtr", 48 | "air_filter": "Vzduchový filtr", 49 | "tire": "Pneumatiky", 50 | "brake": "Brzdy", 51 | "suspension": "Podvozek", 52 | "clutch": "Spojka", 53 | 54 | "excellent": "Výborný", 55 | "good": "Dobrý", 56 | "warning": "Varování", 57 | "critical": "Kritický", 58 | "disabled": "VYPNUTO" 59 | }, 60 | 61 | "target": { 62 | "changeoil": "Měním olej...", 63 | "changeoilfilter": "Měním olejový filtr...", 64 | "changeairfilter": "Měním vzduchový filtr...", 65 | "changetires": "Měním pneumatiky...", 66 | "changebrakes": "Měním brzdy", 67 | "changeclutch": "Měním spojku", 68 | "changesuspension": "Měním zavěšení", 69 | "changesparkplug": "Měním zapalovací svíčky" 70 | }, 71 | "progress": { 72 | "changingoil": "Měním olej...", 73 | "changingoilfilter": "Měním olejový filtr...", 74 | "changingairfilter": "Měním vzduchový filtr...", 75 | "changingtires": "Měním pneumatiky...", 76 | "changingbrakes": "Měním brzdy...", 77 | "changingclutch": "Měním spojku...", 78 | "changingsuspension": "Měním zavěšení...", 79 | "changingsparkplug": "Měním zapalovací svíčky..." 80 | }, 81 | "info": { 82 | "oil_changed": "Motorový olej byl úspěšně vyměněn", 83 | "filter_changed": "Olejový filtr byl úspěšně vyměněn", 84 | "air_filter_changed": "Vzduchový filtr byl úspěšně vyměněn", 85 | "tire_changed": "Pneumatiky byly úspěšně vyměněny", 86 | "brakes_changed": "Brzdy byly úspěšně vyměněny", 87 | "clutch_changed": "Spojka byla úspěšně vyměněna", 88 | "suspension_changed": "Zavěšení bylo úspěšně vyměněno", 89 | "spark_plug_changed": "Zapalovací svíčky byly úspěšně vyměněny" 90 | }, 91 | "warning": { 92 | "checking_veh": "Kontrola vozidla...", 93 | "remaining_oil": "Životnost oleje zbývá", 94 | "remaining_filter": "Životnost olejového filtru zbývá", 95 | "remaining_air_filter": "Životnost vzduchového filtru zbývá", 96 | "remaining_tire": "Životnost pneumatik zbývá", 97 | "remaining_brakes": "Životnost brzd zbývá", 98 | "remaining_clutch": "Životnost spojky zbývá", 99 | "remaining_suspension": "Životnost zavěšení zbývá", 100 | "remaining_spark_plug": "Životnost zapalovacích svíček zbývá", 101 | "remaining": "zbývá", 102 | "replace_need": "Je potřeba vyměnit!", 103 | "replace_soon": "Brzy vyměnit!", 104 | "replace_immediately": "Okamžitě vyměnit!", 105 | "engine_critical": "Motor je kriticky poškozen kvůli nedostatku údržby oleje!", 106 | "stalled": "Motor zhasl kvůli opotřebované spojce!", 107 | "spark_plug_misfire": "Motor má výpadky kvůli vadným zapalovacím svíčkám!" 108 | }, 109 | "error": { 110 | "not_mechanic": "Musíte být mechanik, abyste to mohli udělat", 111 | "low_grade": "Nemáte dostatečné dovednosti k provedení této akce", 112 | "not_in_vehicle": "Musíte být ve vozidle", 113 | "in_vehicle": "Musíte opustit vozidlo", 114 | "not_found": "Vozidlo nebylo nalezeno", 115 | "plate_not_found": "SPZ vozidla nebyla nalezena", 116 | "not_owned": "Toto vozidlo nikomu nepatří", 117 | 118 | "no_oil": "Nemáte motorový olej", 119 | "no_oil_filter": "Nemáte olejový filtr", 120 | "no_air_filter": "Nemáte vzduchový filtr", 121 | "no_tires": "Nemáte náhradní pneumatiky", 122 | "no_brake_parts": "Nemáte brzdové díly", 123 | "no_clutch": "Nemáte spojkové díly", 124 | "no_suspension_parts": "Nemáte díly zavěšení", 125 | "no_spark_plug": "Nemáte zapalovací svíčky" 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /locales/hu.json: -------------------------------------------------------------------------------- 1 | { 2 | "__author": "@AI", 3 | 4 | "ui": { 5 | "mileage": "Futásteljesítmény", 6 | "unit_km": " Km", 7 | "unit_miles": " Mérföld", 8 | 9 | "save": "Mentés", 10 | "edit": "Szerkesztés", 11 | "delete": "Törlés", 12 | "cancel": "Mégse", 13 | "close": "Bezárás", 14 | 15 | "mileage_meter_ui": "Futásteljesítmény-mérő felület", 16 | "checkwear_ui": "Kopásellenőrző felület", 17 | "show_mileage_meter": "Futásteljesítmény-mérő megjelenítése", 18 | "size": "Méret", 19 | "position": "Pozíció (X, Y)", 20 | 21 | "vehicle_mileage_db": "Jármű futásteljesítmény-adatbázis", 22 | "edit_veh_data": "Járműadatok szerkesztése", 23 | "actions": "Műveletek", 24 | "plate": "Rendszám", 25 | "last_oil_change": "Utolsó olajcsere", 26 | "last_filter_change": "Utolsó olajszűrő csere", 27 | "last_air_filter_change": "Utolsó levegőszűrő csere", 28 | "last_tire_change": "Utolsó gumicsere", 29 | "last_brake_change": "Utolsó fékcsere", 30 | "brake_wear": "Fékek kopása", 31 | "last_clutch_change": "Utolsó kuplungcsere", 32 | "clutch_wear": "Kuplung kopása", 33 | "last_sus_change": "Utolsó felfüggesztés csere", 34 | "last_plugs_change": "Utolsó gyújtógyertya csere", 35 | 36 | "no_vehicles_found": "Nem található jármű.", 37 | "confirm_delete_vehicle": "Biztosan törölni szeretné ezt a járművet?", 38 | "vehicle_deleted_success": "A jármű sikeresen törölve lett.", 39 | "failed_delete_vehicle": "A jármű törlése sikertelen volt", 40 | "enter_valid_plate_mileage": "Kérjük, adjon meg érvényes rendszámot és kilométerállást.", 41 | "must_be_equal_or_lower": "{label} egyenlő vagy kisebb kell legyen, mint a kilométeróra állása.", 42 | "vehicle_data_updated": "A jármű adatai sikeresen frissítve lettek", 43 | "failed_update_vehicle_data": "A jármű adatai nem frissültek", 44 | 45 | "spark_plug": "Gyújtógyertyák", 46 | "oil": "Olaj élettartama", 47 | "filter": "Olajszűrő", 48 | "air_filter": "Levegőszűrő", 49 | "tire": "Gumik", 50 | "brake": "Fékek", 51 | "suspension": "Felfüggesztés", 52 | "clutch": "Kuplung", 53 | 54 | "excellent": "Kiváló", 55 | "good": "Jó", 56 | "warning": "Figyelmeztetés", 57 | "critical": "Kritikus", 58 | "disabled": "KIKAPCSOLVA" 59 | }, 60 | 61 | "target": { 62 | "changeoil": "Olajcsere...", 63 | "changeoilfilter": "Olajszűrő csere...", 64 | "changeairfilter": "Légszűrő csere...", 65 | "changetires": "Gumik cseréje...", 66 | "changebrakes": "Fékek cseréje", 67 | "changeclutch": "Kuplung cseréje", 68 | "changesuspension": "Felfüggesztés cseréje", 69 | "changesparkplug": "Gyújtógyertyák cseréje" 70 | }, 71 | "progress": { 72 | "changingoil": "Olaj cseréje...", 73 | "changingoilfilter": "Olajszűrő cseréje...", 74 | "changingairfilter": "Légszűrő cseréje...", 75 | "changingtires": "Gumik cseréje...", 76 | "changingbrakes": "Fékek cseréje...", 77 | "changingclutch": "Kuplung cseréje...", 78 | "changingsuspension": "Felfüggesztés cseréje...", 79 | "changingsparkplug": "Gyújtógyertyák cseréje..." 80 | }, 81 | "info": { 82 | "oil_changed": "A jármű olaját sikeresen kicserélték", 83 | "filter_changed": "A jármű olajszűrőjét sikeresen kicserélték", 84 | "air_filter_changed": "A jármű légszűrőjét sikeresen kicserélték", 85 | "tire_changed": "A jármű gumiabroncsait sikeresen kicserélték", 86 | "brakes_changed": "A jármű fékeit sikeresen kicserélték", 87 | "clutch_changed": "A jármű kuplungját sikeresen kicserélték", 88 | "suspension_changed": "A jármű felfüggesztését sikeresen kicserélték", 89 | "spark_plug_changed": "A jármű gyújtógyertyáit sikeresen kicserélték" 90 | }, 91 | "warning": { 92 | "checking_veh": "Jármű ellenőrzése...", 93 | "remaining_oil": "Olaj élettartama:", 94 | "remaining_filter": "Olajszűrő élettartama:", 95 | "remaining_air_filter": "Légszűrő élettartama:", 96 | "remaining_tire": "Gumi élettartama:", 97 | "remaining_brakes": "Fék élettartama:", 98 | "remaining_clutch": "Kuplung élettartama:", 99 | "remaining_suspension": "Felfüggesztés élettartama:", 100 | "remaining_spark_plug": "Gyújtógyertya élettartama:", 101 | "remaining": "maradt", 102 | "replace_need": "Csere szükséges!", 103 | "replace_soon": "Hamarosan cserélje ki!", 104 | "replace_immediately": "Azonnal cserélje ki!", 105 | "engine_critical": "A motor kritikus károsodást szenvedett az olajkarbantartás hiánya miatt!", 106 | "stalled": "A motor leállt a kopott kuplung miatt!", 107 | "spark_plug_misfire": "A motor hibás gyújtógyertyák miatt hibásan működik!" 108 | }, 109 | "error": { 110 | "not_mechanic": "Mechanikusnak kell lenned ehhez", 111 | "low_grade": "Nincs elég képzettséged ehhez", 112 | "not_in_vehicle": "Járműben kell lenned", 113 | "in_vehicle": "Ki kell szállnod a járműből", 114 | "not_found": "Jármű nem található", 115 | "plate_not_found": "Rendszámtábla nem található", 116 | "not_owned": "Ez a jármű senki tulajdona", 117 | 118 | "no_oil": "Nincs motorolajod", 119 | "no_oil_filter": "Nincs olajszűrőd", 120 | "no_air_filter": "Nincs légszűrőd", 121 | "no_tires": "Nincs csere gumiabroncsod", 122 | "no_brake_parts": "Nincs fékalkatrészed", 123 | "no_clutch": "Nincs kuplungalakatrészed", 124 | "no_suspension_parts": "Nincs felfüggesztés alkatrészed", 125 | "no_spark_plug": "Nincs gyújtógyertyád" 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /locales/nl.json: -------------------------------------------------------------------------------- 1 | { 2 | "__author":"@meneer-Duck", 3 | 4 | 5 | 6 | "ui": { 7 | "mileage": "Kilometerstand", 8 | "unit_km": " Km", 9 | "unit_miles": " Mijlen", 10 | 11 | "save": "Opslaan", 12 | "edit": "Bewerken", 13 | "delete": "Verwijderen", 14 | "cancel": "Annuleren", 15 | "close": "Sluiten", 16 | 17 | "mileage_meter_ui": "Kilometerteller-interface", 18 | "checkwear_ui": "Slijtagecontrole-interface", 19 | "show_mileage_meter": "Toon kilometerteller", 20 | "size": "Grootte", 21 | "position": "Positie (X, Y)", 22 | 23 | "vehicle_mileage_db": "Voertuig kilometerstand database", 24 | "edit_veh_data": "Voertuiggegevens bewerken", 25 | "actions": "Acties", 26 | "plate": "Kenteken", 27 | "last_oil_change": "Laatste olieverversing", 28 | "last_filter_change": "Laatste oliefilter vervanging", 29 | "last_air_filter_change": "Laatste luchtfilter vervanging", 30 | "last_tire_change": "Laatste bandenwissel", 31 | "last_brake_change": "Laatste remmen vervanging", 32 | "brake_wear": "Remslijtage", 33 | "last_clutch_change": "Laatste koppeling vervanging", 34 | "clutch_wear": "Koppelingsslijtage", 35 | "last_sus_change": "Laatste ophanging vervanging", 36 | "last_plugs_change": "Laatste bougies vervanging", 37 | 38 | "no_vehicles_found": "Geen voertuigen gevonden.", 39 | "confirm_delete_vehicle": "Weet u zeker dat u dit voertuig wilt verwijderen?", 40 | "vehicle_deleted_success": "Voertuig succesvol verwijderd.", 41 | "failed_delete_vehicle": "Verwijderen van voertuig mislukt", 42 | "enter_valid_plate_mileage": "Voer een geldig kenteken en kilometerstand in.", 43 | "must_be_equal_or_lower": "{label} moet gelijk zijn aan of lager dan de kilometerstand.", 44 | "vehicle_data_updated": "Voertuiggegevens succesvol bijgewerkt", 45 | "failed_update_vehicle_data": "Bijwerken van voertuiggegevens mislukt", 46 | 47 | "spark_plug": "Bougies", 48 | "oil": "Olielevensduur", 49 | "filter": "Oliefilter", 50 | "air_filter": "Luchtfilter", 51 | "tire": "Banden", 52 | "brake": "Remmen", 53 | "suspension": "Ophanging", 54 | "clutch": "Koppeling", 55 | 56 | "excellent": "Uitstekend", 57 | "good": "Goed", 58 | "warning": "Waarschuwing", 59 | "critical": "Kritiek", 60 | "disabled": "UITGESCHAKELD" 61 | }, 62 | 63 | "target": { 64 | "changeoil": "Olie verversen...", 65 | "changeoilfilter": "Oliefilter vervangen...", 66 | "changeairfilter": "Luchtfilter vervangen...", 67 | "changetires": "Banden vervangen...", 68 | "changebrakes": "Remmen vervangen", 69 | "changeclutch": "Koppeling vervangen", 70 | "changesuspension": "Ophanging vervangen", 71 | "changesparkplug": "Bougies vervangen" 72 | }, 73 | "progress": { 74 | "changingoil": "Olie wordt ververst...", 75 | "changingoilfilter": "Oliefilter wordt vervangen...", 76 | "changingairfilter": "Luchtfilter wordt vervangen...", 77 | "changingtires": "Banden worden vervangen...", 78 | "changingbrakes": "Remmen worden vervangen...", 79 | "changingclutch": "Koppeling wordt vervangen...", 80 | "changingsuspension": "Ophanging wordt vervangen...", 81 | "changingsparkplug": "Bougies worden vervangen..." 82 | }, 83 | "info": { 84 | "oil_changed": "Motorolie is succesvol ververst", 85 | "filter_changed": "Oliefilter is succesvol vervangen", 86 | "air_filter_changed": "Luchtfilter is succesvol vervangen", 87 | "tire_changed": "Banden zijn succesvol vervangen", 88 | "brakes_changed": "Remmen zijn succesvol vervangen", 89 | "clutch_changed": "Koppeling is succesvol vervangen", 90 | "suspension_changed": "Ophanging is succesvol vervangen", 91 | "spark_plug_changed": "Bougies zijn succesvol vervangen" 92 | }, 93 | "warning": { 94 | "checking_veh": "Voertuig controleren...", 95 | "remaining_oil": "Olieconditie op", 96 | "remaining_filter": "Oliefilterconditie op", 97 | "remaining_air_filter": "Luchtfilterconditie op", 98 | "remaining_tire": "Bandenslijtage op", 99 | "remaining_brakes": "Remslijtage op", 100 | "remaining_clutch": "Koppelingslijtage op", 101 | "remaining_suspension": "Ophangingsconditie op", 102 | "remaining_spark_plug": "Bougieconditie op", 103 | "remaining": "resterend", 104 | "replace_need": "Vervanging nodig!", 105 | "replace_soon": "Binnenkort vervangen!", 106 | "replace_immediately": "Onmiddellijk vervangen!", 107 | "engine_critical": "Motor is kritiek beschadigd door gebrek aan olieverversing!", 108 | "stalled": "Motor is uitgevallen door versleten koppeling!", 109 | "spark_plug_misfire": "Motor heeft ontstekingsproblemen door defecte bougies!" 110 | }, 111 | "error": { 112 | "not_mechanic": "Je moet een monteur zijn om dit te doen", 113 | "low_grade": "Je hebt niet genoeg vaardigheid om dit te doen", 114 | "not_in_vehicle": "Je moet in een voertuig zitten", 115 | "in_vehicle": "Je moet uit je voertuig stappen", 116 | "not_found": "Voertuig niet gevonden", 117 | "plate_not_found": "Kenteken van voertuig niet gevonden", 118 | "not_owned": "Dit voertuig is van niemand in bezit", 119 | 120 | "no_oil": "Je hebt geen motorolie", 121 | "no_oil_filter": "Je hebt geen oliefilter", 122 | "no_air_filter": "Je hebt geen luchtfilter", 123 | "no_tires": "Je hebt geen reservebanden", 124 | "no_brake_parts": "Je hebt geen remonderdelen", 125 | "no_clutch": "Je hebt geen koppelingsonderdelen", 126 | "no_suspension_parts": "Je hebt geen ophangingsonderdelen", 127 | "no_spark_plug": "Je hebt geen bougies" 128 | } 129 | } 130 | -------------------------------------------------------------------------------- /locales/el.json: -------------------------------------------------------------------------------- 1 | { 2 | "__author": "@AI", 3 | 4 | "ui": { 5 | "mileage": "Χιλιόμετρα", 6 | "unit_km": " Χλμ", 7 | "unit_miles": " Μίλια", 8 | 9 | "save": "Αποθήκευση", 10 | "edit": "Επεξεργασία", 11 | "delete": "Διαγραφή", 12 | "cancel": "Ακύρωση", 13 | "close": "Κλείσιμο", 14 | 15 | "mileage_meter_ui": "Διεπαφή μετρητή χιλιομέτρων", 16 | "checkwear_ui": "Διεπαφή ελέγχου φθοράς", 17 | "show_mileage_meter": "Εμφάνιση μετρητή χιλιομέτρων", 18 | "size": "Μέγεθος", 19 | "position": "Θέση (X, Y)", 20 | 21 | "vehicle_mileage_db": "Βάση δεδομένων χιλιομέτρων οχήματος", 22 | "edit_veh_data": "Επεξεργασία δεδομένων οχήματος", 23 | "actions": "Ενέργειες", 24 | "plate": "Πινακίδα", 25 | "last_oil_change": "Τελευταία αλλαγή λαδιού", 26 | "last_filter_change": "Τελευταία αλλαγή φίλτρου λαδιού", 27 | "last_air_filter_change": "Τελευταία αλλαγή φίλτρου αέρα", 28 | "last_tire_change": "Τελευταία αλλαγή ελαστικών", 29 | "last_brake_change": "Τελευταία αλλαγή φρένων", 30 | "brake_wear": "Φθορά φρένων", 31 | "last_clutch_change": "Τελευταία αλλαγή συμπλέκτη", 32 | "clutch_wear": "Φθορά συμπλέκτη", 33 | "last_sus_change": "Τελευταία αλλαγή ανάρτησης", 34 | "last_plugs_change": "Τελευταία αλλαγή μπουζί", 35 | 36 | "no_vehicles_found": "Δεν βρέθηκαν οχήματα.", 37 | "confirm_delete_vehicle": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το όχημα;", 38 | "vehicle_deleted_success": "Το όχημα διαγράφηκε με επιτυχία.", 39 | "failed_delete_vehicle": "Αποτυχία διαγραφής οχήματος", 40 | "enter_valid_plate_mileage": "Παρακαλώ εισάγετε έγκυρη πινακίδα και χιλιόμετρα.", 41 | "must_be_equal_or_lower": "{label} πρέπει να είναι ίσο ή μικρότερο από τα χιλιόμετρα.", 42 | "vehicle_data_updated": "Τα δεδομένα οχήματος ενημερώθηκαν με επιτυχία", 43 | "failed_update_vehicle_data": "Αποτυχία ενημέρωσης δεδομένων οχήματος", 44 | 45 | "spark_plug": "Μπουζί", 46 | "oil": "Διάρκεια ζωής λαδιού", 47 | "filter": "Φίλτρο λαδιού", 48 | "air_filter": "Φίλτρο αέρα", 49 | "tire": "Ελαστικά", 50 | "brake": "Φρένα", 51 | "suspension": "Ανάρτηση", 52 | "clutch": "Συμπλέκτης", 53 | 54 | "excellent": "Εξαιρετικό", 55 | "good": "Καλό", 56 | "warning": "Προειδοποίηση", 57 | "critical": "Κρίσιμο", 58 | "disabled": "ΑΝΕΝΕΡΓΟ" 59 | }, 60 | 61 | "target": { 62 | "changeoil": "Αλλαγή λαδιού...", 63 | "changeoilfilter": "Αλλαγή φίλτρου λαδιού...", 64 | "changeairfilter": "Αλλαγή φίλτρου αέρα...", 65 | "changetires": "Αλλαγή ελαστικών...", 66 | "changebrakes": "Αλλαγή φρένων", 67 | "changeclutch": "Αλλαγή συμπλέκτη", 68 | "changesuspension": "Αλλαγή ανάρτησης", 69 | "changesparkplug": "Αλλαγή μπουζί" 70 | }, 71 | "progress": { 72 | "changingoil": "Αλλαγή λαδιού...", 73 | "changingoilfilter": "Αλλαγή φίλτρου λαδιού...", 74 | "changingairfilter": "Αλλαγή φίλτρου αέρα...", 75 | "changingtires": "Αλλαγή ελαστικών...", 76 | "changingbrakes": "Αλλαγή φρένων...", 77 | "changingclutch": "Αλλαγή συμπλέκτη...", 78 | "changingsuspension": "Αλλαγή ανάρτησης...", 79 | "changingsparkplug": "Αλλαγή μπουζί..." 80 | }, 81 | "info": { 82 | "oil_changed": "Το λάδι του οχήματος άλλαξε με επιτυχία", 83 | "filter_changed": "Το φίλτρο λαδιού του οχήματος άλλαξε με επιτυχία", 84 | "air_filter_changed": "Το φίλτρο αέρα του οχήματος άλλαξε με επιτυχία", 85 | "tire_changed": "Τα ελαστικά του οχήματος άλλαξαν με επιτυχία", 86 | "brakes_changed": "Τα φρένα του οχήματος άλλαξαν με επιτυχία", 87 | "clutch_changed": "Ο συμπλέκτης του οχήματος άλλαξε με επιτυχία", 88 | "suspension_changed": "Η ανάρτηση του οχήματος άλλαξε με επιτυχία", 89 | "spark_plug_changed": "Τα μπουζί του οχήματος άλλαξαν με επιτυχία" 90 | }, 91 | "warning": { 92 | "checking_veh": "Έλεγχος οχήματος...", 93 | "remaining_oil": "Διάρκεια ζωής λαδιού στο", 94 | "remaining_filter": "Διάρκεια ζωής φίλτρου λαδιού στο", 95 | "remaining_air_filter": "Διάρκεια ζωής φίλτρου αέρα στο", 96 | "remaining_tire": "Διάρκεια ζωής ελαστικών στο", 97 | "remaining_brakes": "Διάρκεια ζωής φρένων στο", 98 | "remaining_clutch": "Διάρκεια ζωής συμπλέκτη στο", 99 | "remaining_suspension": "Διάρκεια ζωής ανάρτησης στο", 100 | "remaining_spark_plug": "Διάρκεια ζωής μπουζί στο", 101 | "remaining": "απομένει", 102 | "replace_need": "Απαιτείται αντικατάσταση!", 103 | "replace_soon": "Αντικαταστήστε σύντομα!", 104 | "replace_immediately": "Αντικαταστήστε αμέσως!", 105 | "engine_critical": "Ο κινητήρας έχει υποστεί σοβαρή ζημιά λόγω έλλειψης συντήρησης λαδιού!", 106 | "stalled": "Ο κινητήρας έσβησε λόγω φθαρμένου συμπλέκτη!", 107 | "spark_plug_misfire": "Ο κινητήρας έχει βλάβη λόγω ελαττωματικών μπουζί!" 108 | }, 109 | "error": { 110 | "not_mechanic": "Πρέπει να είστε μηχανικός για να το κάνετε αυτό", 111 | "low_grade": "Δεν έχετε αρκετές δεξιότητες για να το κάνετε αυτό", 112 | "not_in_vehicle": "Πρέπει να βρίσκεστε σε όχημα", 113 | "in_vehicle": "Πρέπει να βγείτε από το όχημα", 114 | "not_found": "Το όχημα δεν βρέθηκε", 115 | "plate_not_found": "Η πινακίδα του οχήματος δεν βρέθηκε", 116 | "not_owned": "Αυτό το όχημα δεν ανήκει σε κανέναν", 117 | 118 | "no_oil": "Δεν έχετε μηχανέλαιο", 119 | "no_oil_filter": "Δεν έχετε φίλτρο λαδιού", 120 | "no_air_filter": "Δεν έχετε φίλτρο αέρα", 121 | "no_tires": "Δεν έχετε εφεδρικά ελαστικά", 122 | "no_brake_parts": "Δεν έχετε ανταλλακτικά φρένων", 123 | "no_clutch": "Δεν έχετε ανταλλακτικά συμπλέκτη", 124 | "no_suspension_parts": "Δεν έχετε ανταλλακτικά ανάρτησης", 125 | "no_spark_plug": "Δεν έχετε μπουζί" 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /locales/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "__author": "@AI", 3 | 4 | "ui": { 5 | "mileage": "Пробег", 6 | "unit_km": " Км", 7 | "unit_miles": " Мили", 8 | 9 | "save": "Сохранить", 10 | "edit": "Редактировать", 11 | "delete": "Удалить", 12 | "cancel": "Отмена", 13 | "close": "Закрыть", 14 | 15 | "mileage_meter_ui": "Интерфейс счетчика пробега", 16 | "checkwear_ui": "Интерфейс проверки износа", 17 | "show_mileage_meter": "Показать счетчик пробега", 18 | "size": "Размер", 19 | "position": "Позиция (X, Y)", 20 | 21 | "vehicle_mileage_db": "База данных пробега автомобиля", 22 | "edit_veh_data": "Редактировать данные автомобиля", 23 | "actions": "Действия", 24 | "plate": "Номер", 25 | "last_oil_change": "Последняя замена масла", 26 | "last_filter_change": "Последняя замена масляного фильтра", 27 | "last_air_filter_change": "Последняя замена воздушного фильтра", 28 | "last_tire_change": "Последняя замена шин", 29 | "last_brake_change": "Последняя замена тормозов", 30 | "brake_wear": "Износ тормозов", 31 | "last_clutch_change": "Последняя замена сцепления", 32 | "clutch_wear": "Износ сцепления", 33 | "last_sus_change": "Последняя замена подвески", 34 | "last_plugs_change": "Последняя замена свечей зажигания", 35 | 36 | "no_vehicles_found": "Автомобили не найдены.", 37 | "confirm_delete_vehicle": "Вы уверены, что хотите удалить этот автомобиль?", 38 | "vehicle_deleted_success": "Автомобиль успешно удален.", 39 | "failed_delete_vehicle": "Не удалось удалить автомобиль", 40 | "enter_valid_plate_mileage": "Пожалуйста, введите действительный номер и пробег.", 41 | "must_be_equal_or_lower": "{label} должен быть равен или меньше пробега.", 42 | "vehicle_data_updated": "Данные автомобиля успешно обновлены", 43 | "failed_update_vehicle_data": "Не удалось обновить данные автомобиля", 44 | 45 | "spark_plug": "Свечи зажигания", 46 | "oil": "Срок службы масла", 47 | "filter": "Масляный фильтр", 48 | "air_filter": "Воздушный фильтр", 49 | "tire": "Шины", 50 | "brake": "Тормоза", 51 | "suspension": "Подвеска", 52 | "clutch": "Сцепление", 53 | 54 | "excellent": "Отлично", 55 | "good": "Хорошо", 56 | "warning": "Предупреждение", 57 | "critical": "Критично", 58 | "disabled": "ОТКЛЮЧЕНО" 59 | }, 60 | 61 | "target": { 62 | "changeoil": "Замена масла...", 63 | "changeoilfilter": "Замена масляного фильтра...", 64 | "changeairfilter": "Замена воздушного фильтра...", 65 | "changetires": "Замена шин...", 66 | "changebrakes": "Замена тормозов", 67 | "changeclutch": "Замена сцепления", 68 | "changesuspension": "Замена подвески", 69 | "changesparkplug": "Замена свечей зажигания" 70 | }, 71 | "progress": { 72 | "changingoil": "Замена масла...", 73 | "changingoilfilter": "Замена масляного фильтра...", 74 | "changingairfilter": "Замена воздушного фильтра...", 75 | "changingtires": "Замена шин...", 76 | "changingbrakes": "Замена тормозов...", 77 | "changingclutch": "Замена сцепления...", 78 | "changingsuspension": "Замена подвески...", 79 | "changingsparkplug": "Замена свечей зажигания..." 80 | }, 81 | "info": { 82 | "oil_changed": "Масло в автомобиле успешно заменено", 83 | "filter_changed": "Масляный фильтр в автомобиле успешно заменен", 84 | "air_filter_changed": "Воздушный фильтр в автомобиле успешно заменен", 85 | "tire_changed": "Шины в автомобиле успешно заменены", 86 | "brakes_changed": "Тормоза в автомобиле успешно заменены", 87 | "clutch_changed": "Сцепление в автомобиле успешно заменено", 88 | "suspension_changed": "Подвеска в автомобиле успешно заменена", 89 | "spark_plug_changed": "Свечи зажигания в автомобиле успешно заменены" 90 | }, 91 | "warning": { 92 | "checking_veh": "Проверка автомобиля...", 93 | "remaining_oil": "Срок службы масла", 94 | "remaining_filter": "Срок службы масляного фильтра", 95 | "remaining_air_filter": "Срок службы воздушного фильтра", 96 | "remaining_tire": "Срок службы шин", 97 | "remaining_brakes": "Срок службы тормозов", 98 | "remaining_clutch": "Срок службы сцепления", 99 | "remaining_suspension": "Срок службы подвески", 100 | "remaining_spark_plug": "Срок службы свечей зажигания", 101 | "remaining": "осталось", 102 | "replace_need": "Требуется замена!", 103 | "replace_soon": "Скоро заменить!", 104 | "replace_immediately": "Заменить немедленно!", 105 | "engine_critical": "Двигатель критически поврежден из-за отсутствия обслуживания масла!", 106 | "stalled": "Двигатель заглох из-за изношенного сцепления!", 107 | "spark_plug_misfire": "Двигатель работает с перебоями из-за неисправных свечей зажигания!" 108 | }, 109 | "error": { 110 | "not_mechanic": "Вы должны быть механиком, чтобы сделать это", 111 | "low_grade": "У вас недостаточно навыков, чтобы сделать это", 112 | "not_in_vehicle": "Вы должны находиться в транспортном средстве", 113 | "in_vehicle": "Вы должны выйти из транспортного средства", 114 | "not_found": "Транспортное средство не найдено", 115 | "plate_not_found": "Номерной знак транспортного средства не найден", 116 | "not_owned": "Это транспортное средство никому не принадлежит", 117 | 118 | "no_oil": "У вас нет моторного масла", 119 | "no_oil_filter": "У вас нет масляного фильтра", 120 | "no_air_filter": "У вас нет воздушного фильтра", 121 | "no_tires": "У вас нет запасных шин", 122 | "no_brake_parts": "У вас нет тормозных деталей", 123 | "no_clutch": "У вас нет деталей сцепления", 124 | "no_suspension_parts": "У вас нет деталей подвески", 125 | "no_spark_plug": "У вас нет свечей зажигания" 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /locales/sl.json: -------------------------------------------------------------------------------- 1 | { 2 | "__author": "@AI", 3 | 4 | "ui": { 5 | "mileage": "Prevožena razdalja", 6 | "unit_km": " Km", 7 | "unit_miles": " Milje", 8 | 9 | "save": "Shrani", 10 | "edit": "Uredi", 11 | "delete": "Izbriši", 12 | "cancel": "Prekliči", 13 | "close": "Zapri", 14 | 15 | "mileage_meter_ui": "Vmesnik števca prevoženih kilometrov", 16 | "checkwear_ui": "Vmesnik za preverjanje obrabe", 17 | "show_mileage_meter": "Prikaži števec prevoženih kilometrov", 18 | "size": "Velikost", 19 | "position": "Pozicija (X, Y)", 20 | 21 | "vehicle_mileage_db": "Baza podatkov o prevoženih kilometrih vozila", 22 | "edit_veh_data": "Uredi podatke o vozilu", 23 | "actions": "Dejanja", 24 | "plate": "Registrska številka", 25 | "last_oil_change": "Zadnja menjava olja", 26 | "last_filter_change": "Zadnja menjava oljnega filtra", 27 | "last_air_filter_change": "Zadnja menjava zračnega filtra", 28 | "last_tire_change": "Zadnja menjava pnevmatik", 29 | "last_brake_change": "Zadnja menjava zavor", 30 | "brake_wear": "Obraba zavor", 31 | "last_clutch_change": "Zadnja menjava sklopke", 32 | "clutch_wear": "Obraba sklopke", 33 | "last_sus_change": "Zadnja menjava vzmetenja", 34 | "last_plugs_change": "Zadnja menjava svečk", 35 | 36 | "no_vehicles_found": "Vozila niso bila najdena.", 37 | "confirm_delete_vehicle": "Ali ste prepričani, da želite izbrisati to vozilo?", 38 | "vehicle_deleted_success": "Vozilo je bilo uspešno izbrisano.", 39 | "failed_delete_vehicle": "Brisanje vozila ni uspelo", 40 | "enter_valid_plate_mileage": "Vnesite veljavno registrsko številko in prevoženo razdaljo.", 41 | "must_be_equal_or_lower": "{label} mora biti enak ali manjši od prevožene razdalje.", 42 | "vehicle_data_updated": "Podatki o vozilu so bili uspešno posodobljeni", 43 | "failed_update_vehicle_data": "Posodobitev podatkov o vozilu ni uspela", 44 | 45 | "spark_plug": "Vžigalne svečke", 46 | "oil": "Življenjska doba olja", 47 | "filter": "Oljni filter", 48 | "air_filter": "Zračni filter", 49 | "tire": "Pnevmatike", 50 | "brake": "Zavore", 51 | "suspension": "Vzmetenje", 52 | "clutch": "Sklopka", 53 | 54 | "excellent": "Odlično", 55 | "good": "Dobro", 56 | "warning": "Opozorilo", 57 | "critical": "Kritično", 58 | "disabled": "ONEMOGOČENO" 59 | }, 60 | 61 | "target": { 62 | "changeoil": "Menjam olje...", 63 | "changeoilfilter": "Menjam oljni filter...", 64 | "changeairfilter": "Menjam zračni filter...", 65 | "changetires": "Menjam pnevmatike...", 66 | "changebrakes": "Menjam zavore", 67 | "changeclutch": "Menjam sklopko", 68 | "changesuspension": "Menjam vzmetenje", 69 | "changesparkplug": "Menjam svečke" 70 | }, 71 | "progress": { 72 | "changingoil": "Menjam olje...", 73 | "changingoilfilter": "Menjam oljni filter...", 74 | "changingairfilter": "Menjam zračni filter...", 75 | "changingtires": "Menjam pnevmatike...", 76 | "changingbrakes": "Menjam zavore...", 77 | "changingclutch": "Menjam sklopko...", 78 | "changingsuspension": "Menjam vzmetenje...", 79 | "changingsparkplug": "Menjam svečke..." 80 | }, 81 | "info": { 82 | "oil_changed": "Olje na vozilu je bilo uspešno zamenjano", 83 | "filter_changed": "Oljni filter na vozilu je bil uspešno zamenjan", 84 | "air_filter_changed": "Zračni filter na vozilu je bil uspešno zamenjan", 85 | "tire_changed": "Pnevmatike na vozilu so bile uspešno zamenjane", 86 | "brakes_changed": "Zavore na vozilu so bile uspešno zamenjane", 87 | "clutch_changed": "Sklopka na vozilu je bila uspešno zamenjana", 88 | "suspension_changed": "Vzmetenje na vozilu je bilo uspešno zamenjano", 89 | "spark_plug_changed": "Svečke na vozilu so bile uspešno zamenjane" 90 | }, 91 | "warning": { 92 | "checking_veh": "Preverjam vozilo...", 93 | "remaining_oil": "Preostala življenjska doba olja je", 94 | "remaining_filter": "Preostala življenjska doba oljnega filtra je", 95 | "remaining_air_filter": "Preostala življenjska doba zračnega filtra je", 96 | "remaining_tire": "Preostala življenjska doba pnevmatik je", 97 | "remaining_brakes": "Preostala življenjska doba zavor je", 98 | "remaining_clutch": "Preostala življenjska doba sklopke je", 99 | "remaining_suspension": "Preostala življenjska doba vzmetenja je", 100 | "remaining_spark_plug": "Preostala življenjska doba svečk je", 101 | "remaining": "preostalo", 102 | "replace_need": "Potrebna zamenjava!", 103 | "replace_soon": "Zamenjajte kmalu!", 104 | "replace_immediately": "Zamenjajte takoj!", 105 | "engine_critical": "Motor je kritično poškodovan zaradi pomanjkanja vzdrževanja olja!", 106 | "stalled": "Motor je ugasnil zaradi obrabljene sklopke!", 107 | "spark_plug_misfire": "Motor ne deluje pravilno zaradi okvarjenih svečk!" 108 | }, 109 | "error": { 110 | "not_mechanic": "Za to morate biti mehanik", 111 | "low_grade": "Nimate dovolj spretnosti za to", 112 | "not_in_vehicle": "Morate biti v vozilu", 113 | "in_vehicle": "Morate zapustiti vozilo", 114 | "not_found": "Vozilo ni bilo najdeno", 115 | "plate_not_found": "Registrska tablica vozila ni bila najdena", 116 | "not_owned": "To vozilo ne pripada nikomur", 117 | 118 | "no_oil": "Nimate motornega olja", 119 | "no_oil_filter": "Nimate oljnega filtra", 120 | "no_air_filter": "Nimate zračnega filtra", 121 | "no_tires": "Nimate rezervnih pnevmatik", 122 | "no_brake_parts": "Nimate zavornih delov", 123 | "no_clutch": "Nimate delov sklopke", 124 | "no_suspension_parts": "Nimate delov vzmetenja", 125 | "no_spark_plug": "Nimate svečk" 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /locales/pt.json: -------------------------------------------------------------------------------- 1 | { 2 | "__author":"@AI", 3 | 4 | "ui": { 5 | "mileage": "Quilometragem", 6 | "unit_km": " Km", 7 | "unit_miles": " Milhas", 8 | 9 | "save": "Salvar", 10 | "edit": "Editar", 11 | "delete": "Excluir", 12 | "cancel": "Cancelar", 13 | "close": "Fechar", 14 | 15 | "mileage_meter_ui": "Interface do medidor de quilometragem", 16 | "checkwear_ui": "Interface de desgaste", 17 | "show_mileage_meter": "Mostrar medidor de quilometragem", 18 | "size": "Tamanho", 19 | "position": "Posição (X, Y)", 20 | 21 | "vehicle_mileage_db": "Banco de dados de quilometragem do veículo", 22 | "edit_veh_data": "Editar dados do veículo", 23 | "actions": "Ações", 24 | "plate": "Placa", 25 | "last_oil_change": "Última troca de óleo", 26 | "last_filter_change": "Última troca de filtro de óleo", 27 | "last_air_filter_change": "Última troca de filtro de ar", 28 | "last_tire_change": "Última troca de pneus", 29 | "last_brake_change": "Última troca de freios", 30 | "brake_wear": "Desgaste dos freios", 31 | "last_clutch_change": "Última troca de embreagem", 32 | "clutch_wear": "Desgaste da embreagem", 33 | "last_sus_change": "Última troca de suspensão", 34 | "last_plugs_change": "Última troca de velas", 35 | 36 | "no_vehicles_found": "Nenhum veículo encontrado.", 37 | "confirm_delete_vehicle": "Tem certeza de que deseja excluir este veículo?", 38 | "vehicle_deleted_success": "Veículo excluído com sucesso.", 39 | "failed_delete_vehicle": "Falha ao excluir o veículo", 40 | "enter_valid_plate_mileage": "Por favor, insira placa e quilometragem válidas.", 41 | "must_be_equal_or_lower": "{label} deve ser igual ou menor que a quilometragem.", 42 | "vehicle_data_updated": "Dados do veículo atualizados com sucesso", 43 | "failed_update_vehicle_data": "Falha ao atualizar os dados do veículo", 44 | 45 | "spark_plug": "Velas de ignição", 46 | "oil": "Vida útil do óleo", 47 | "filter": "Filtro de óleo", 48 | "air_filter": "Filtro de ar", 49 | "tire": "Pneus", 50 | "brake": "Freios", 51 | "suspension": "Suspensão", 52 | "clutch": "Embreagem", 53 | 54 | "excellent": "Excelente", 55 | "good": "Bom", 56 | "warning": "Aviso", 57 | "critical": "Crítico", 58 | "disabled": "DESATIVADO" 59 | }, 60 | 61 | "target": { 62 | "changeoil": "Trocando óleo...", 63 | "changeoilfilter": "Trocando filtro de óleo...", 64 | "changeairfilter": "Trocando filtro de ar...", 65 | "changetires": "Trocando pneus...", 66 | "changebrakes": "Trocando freios", 67 | "changeclutch": "Trocando embreagem", 68 | "changesuspension": "Trocando suspensão", 69 | "changesparkplug": "Trocando velas de ignição" 70 | }, 71 | "progress": { 72 | "changingoil": "Trocando óleo...", 73 | "changingoilfilter": "Trocando filtro de óleo...", 74 | "changingairfilter": "Trocando filtro de ar...", 75 | "changingtires": "Trocando pneus...", 76 | "changingbrakes": "Trocando freios...", 77 | "changingclutch": "Trocando embreagem...", 78 | "changingsuspension": "Trocando suspensão...", 79 | "changingsparkplug": "Trocando velas de ignição..." 80 | }, 81 | "info": { 82 | "oil_changed": "O óleo do veículo foi trocado com sucesso", 83 | "filter_changed": "O filtro de óleo do veículo foi trocado com sucesso", 84 | "air_filter_changed": "O filtro de ar do veículo foi trocado com sucesso", 85 | "tire_changed": "Os pneus do veículo foram trocados com sucesso", 86 | "brakes_changed": "Os freios do veículo foram trocados com sucesso", 87 | "clutch_changed": "A embreagem do veículo foi trocada com sucesso", 88 | "suspension_changed": "A suspensão do veículo foi trocada com sucesso", 89 | "spark_plug_changed": "As velas de ignição do veículo foram trocadas com sucesso" 90 | }, 91 | "warning": { 92 | "checking_veh": "Verificando veículo...", 93 | "remaining_oil": "Vida útil do óleo", 94 | "remaining_filter": "Vida útil do filtro de óleo", 95 | "remaining_air_filter": "Vida útil do filtro de ar", 96 | "remaining_tire": "Vida útil do pneu", 97 | "remaining_brakes": "Vida útil do freio", 98 | "remaining_clutch": "Vida útil da embreagem", 99 | "remaining_suspension": "Vida útil da suspensão", 100 | "remaining_spark_plug": "Vida útil da vela de ignição", 101 | "remaining": "restante", 102 | "replace_need": "Substituição necessária!", 103 | "replace_soon": "Substitua em breve!", 104 | "replace_immediately": "Substitua imediatamente!", 105 | "engine_critical": "O motor está gravemente danificado devido à falta de manutenção do óleo!", 106 | "stalled": "O motor parou devido à embreagem desgastada!", 107 | "spark_plug_misfire": "O motor está falhando devido a velas de ignição defeituosas!" 108 | }, 109 | "error": { 110 | "not_mechanic": "Você deve ser mecânico para fazer isso", 111 | "low_grade": "Você não tem habilidade suficiente para fazer isso", 112 | "not_in_vehicle": "Você deve estar em um veículo", 113 | "in_vehicle": "Você deve sair do seu veículo", 114 | "not_found": "Veículo não encontrado", 115 | "plate_not_found": "Placa do veículo não encontrada", 116 | "not_owned": "Este veículo não pertence a ninguém", 117 | "no_oil": "Você não tem óleo de motor", 118 | "no_oil_filter": "Você não tem filtro de óleo", 119 | "no_air_filter": "Você não tem filtro de ar", 120 | "no_tires": "Você não tem pneus de reposição", 121 | "no_brake_parts": "Você não tem peças de freio", 122 | "no_clutch": "Você não tem peças de embreagem", 123 | "no_suspension_parts": "Você não tem peças de suspensão", 124 | "no_spark_plug": "Você não tem velas de ignição" 125 | } 126 | } -------------------------------------------------------------------------------- /locales/pl.json: -------------------------------------------------------------------------------- 1 | { 2 | "__author":"@AI", 3 | 4 | "ui": { 5 | "mileage": "Przebieg", 6 | "unit_km": " Km", 7 | "unit_miles": " Mile", 8 | 9 | "save": "Zapisz", 10 | "edit": "Edytuj", 11 | "delete": "Usuń", 12 | "cancel": "Anuluj", 13 | "close": "Zamknij", 14 | 15 | "mileage_meter_ui": "Interfejs licznika przebiegu", 16 | "checkwear_ui": "Interfejs kontroli zużycia", 17 | "show_mileage_meter": "Pokaż licznik przebiegu", 18 | "size": "Rozmiar", 19 | "position": "Pozycja (X, Y)", 20 | 21 | "vehicle_mileage_db": "Baza danych przebiegu pojazdu", 22 | "edit_veh_data": "Edytuj dane pojazdu", 23 | "actions": "Akcje", 24 | "plate": "Tablica rejestracyjna", 25 | "last_oil_change": "Ostatnia wymiana oleju", 26 | "last_filter_change": "Ostatnia wymiana filtra oleju", 27 | "last_air_filter_change": "Ostatnia wymiana filtra powietrza", 28 | "last_tire_change": "Ostatnia wymiana opon", 29 | "last_brake_change": "Ostatnia wymiana hamulców", 30 | "brake_wear": "Zużycie hamulców", 31 | "last_clutch_change": "Ostatnia wymiana sprzęgła", 32 | "clutch_wear": "Zużycie sprzęgła", 33 | "last_sus_change": "Ostatnia wymiana zawieszenia", 34 | "last_plugs_change": "Ostatnia wymiana świec zapłonowych", 35 | 36 | "no_vehicles_found": "Nie znaleziono pojazdów.", 37 | "confirm_delete_vehicle": "Czy na pewno chcesz usunąć ten pojazd?", 38 | "vehicle_deleted_success": "Pojazd został pomyślnie usunięty.", 39 | "failed_delete_vehicle": "Nie udało się usunąć pojazdu", 40 | "enter_valid_plate_mileage": "Wprowadź prawidłowy numer rejestracyjny i przebieg.", 41 | "must_be_equal_or_lower": "{label} musi być równe lub mniejsze niż przebieg.", 42 | "vehicle_data_updated": "Dane pojazdu zostały pomyślnie zaktualizowane", 43 | "failed_update_vehicle_data": "Nie udało się zaktualizować danych pojazdu", 44 | 45 | "spark_plug": "Świece zapłonowe", 46 | "oil": "Żywotność oleju", 47 | "filter": "Filtr oleju", 48 | "air_filter": "Filtr powietrza", 49 | "tire": "Opony", 50 | "brake": "Hamulce", 51 | "suspension": "Zawieszenie", 52 | "clutch": "Sprzęgło", 53 | 54 | "excellent": "Doskonały", 55 | "good": "Dobry", 56 | "warning": "Ostrzeżenie", 57 | "critical": "Krytyczny", 58 | "disabled": "WYŁĄCZONY" 59 | }, 60 | 61 | "target": { 62 | "changeoil": "Wymiana oleju...", 63 | "changeoilfilter": "Wymiana filtra oleju...", 64 | "changeairfilter": "Wymiana filtra powietrza...", 65 | "changetires": "Wymiana opon...", 66 | "changebrakes": "Wymiana hamulców", 67 | "changeclutch": "Wymiana sprzęgła", 68 | "changesuspension": "Wymiana zawieszenia", 69 | "changesparkplug": "Wymiana świec zapłonowych" 70 | }, 71 | "progress": { 72 | "changingoil": "Wymiana oleju...", 73 | "changingoilfilter": "Wymiana filtra oleju...", 74 | "changingairfilter": "Wymiana filtra powietrza...", 75 | "changingtires": "Wymiana opon...", 76 | "changingbrakes": "Wymiana hamulców...", 77 | "changingclutch": "Wymiana sprzęgła...", 78 | "changingsuspension": "Wymiana zawieszenia...", 79 | "changingsparkplug": "Wymiana świec zapłonowych..." 80 | }, 81 | "info": { 82 | "oil_changed": "Olej w pojeździe został pomyślnie wymieniony", 83 | "filter_changed": "Filtr oleju w pojeździe został pomyślnie wymieniony", 84 | "air_filter_changed": "Filtr powietrza w pojeździe został pomyślnie wymieniony", 85 | "tire_changed": "Opony w pojeździe zostały pomyślnie wymienione", 86 | "brakes_changed": "Hamulce w pojeździe zostały pomyślnie wymienione", 87 | "clutch_changed": "Sprzęgło w pojeździe zostało pomyślnie wymienione", 88 | "suspension_changed": "Zawieszenie w pojeździe zostało pomyślnie wymienione", 89 | "spark_plug_changed": "Świece zapłonowe w pojeździe zostały pomyślnie wymienione" 90 | }, 91 | "warning": { 92 | "checking_veh": "Sprawdzanie pojazdu...", 93 | "remaining_oil": "Pozostała żywotność oleju", 94 | "remaining_filter": "Pozostała żywotność filtra oleju", 95 | "remaining_air_filter": "Pozostała żywotność filtra powietrza", 96 | "remaining_tire": "Pozostała żywotność opony", 97 | "remaining_brakes": "Pozostała żywotność hamulców", 98 | "remaining_clutch": "Pozostała żywotność sprzęgła", 99 | "remaining_suspension": "Pozostała żywotność zawieszenia", 100 | "remaining_spark_plug": "Pozostała żywotność świecy zapłonowej", 101 | "remaining": "pozostało", 102 | "replace_need": "Wymagana wymiana!", 103 | "replace_soon": "Wymień wkrótce!", 104 | "replace_immediately": "Wymień natychmiast!", 105 | "engine_critical": "Silnik jest poważnie uszkodzony z powodu braku konserwacji oleju!", 106 | "stalled": "Silnik zgasł z powodu zużytego sprzęgła!", 107 | "spark_plug_misfire": "Silnik przerywa z powodu uszkodzonych świec zapłonowych!" 108 | }, 109 | "error": { 110 | "not_mechanic": "Musisz być mechanikiem, aby to zrobić", 111 | "low_grade": "Nie masz wystarczających umiejętności, aby to zrobić", 112 | "not_in_vehicle": "Musisz być w pojeździe", 113 | "in_vehicle": "Musisz opuścić pojazd", 114 | "not_found": "Nie znaleziono pojazdu", 115 | "plate_not_found": "Nie znaleziono tablicy rejestracyjnej pojazdu", 116 | "not_owned": "Ten pojazd nie należy do nikogo", 117 | "no_oil": "Nie masz oleju silnikowego", 118 | "no_oil_filter": "Nie masz filtra oleju", 119 | "no_air_filter": "Nie masz filtra powietrza", 120 | "no_tires": "Nie masz zapasowych opon", 121 | "no_brake_parts": "Nie masz części hamulcowych", 122 | "no_clutch": "Nie masz części sprzęgła", 123 | "no_suspension_parts": "Nie masz części zawieszenia", 124 | "no_spark_plug": "Nie masz świec zapłonowych" 125 | } 126 | } -------------------------------------------------------------------------------- /locales/de.json: -------------------------------------------------------------------------------- 1 | { 2 | "__author":"@Sascha", 3 | 4 | 5 | 6 | "ui": { 7 | "mileage": "Kilometerstand", 8 | "unit_km": " Km", 9 | "unit_miles": " Mijlen", 10 | 11 | "save": "Speichern", 12 | "edit": "Bearbeiten", 13 | "delete": "Löschen", 14 | "cancel": "Abbrechen", 15 | "close": "Schließen", 16 | 17 | "mileage_meter_ui": "Kilometerzähler-Benutzeroberfläche", 18 | "checkwear_ui": "Verschleißprüfung-Benutzeroberfläche", 19 | "show_mileage_meter": "Kilometerzähler anzeigen", 20 | "size": "Größe", 21 | "position": "Position (X, Y)", 22 | 23 | "vehicle_mileage_db": "Fahrzeug-Kilometerstand-Datenbank", 24 | "edit_veh_data": "Fahrzeugdaten bearbeiten", 25 | "actions": "Aktionen", 26 | "plate": "Kennzeichen", 27 | "last_oil_change": "Letzter Ölwechsel", 28 | "last_filter_change": "Letzter Ölfilterwechsel", 29 | "last_air_filter_change": "Letzter Luftfilterwechsel", 30 | "last_tire_change": "Letzter Reifenwechsel", 31 | "last_brake_change": "Letzter Bremsenwechsel", 32 | "brake_wear": "Bremsenverschleiß", 33 | "last_clutch_change": "Letzter Kupplungswechsel", 34 | "clutch_wear": "Kupplungsverschleiß", 35 | "last_sus_change": "Letzter Federungswechsel", 36 | "last_plugs_change": "Letzter Zündkerzenwechsel", 37 | 38 | "no_vehicles_found": "Keine Fahrzeuge gefunden.", 39 | "confirm_delete_vehicle": "Sind Sie sicher, dass Sie dieses Fahrzeug löschen möchten?", 40 | "vehicle_deleted_success": "Fahrzeug erfolgreich gelöscht.", 41 | "failed_delete_vehicle": "Fahrzeug konnte nicht gelöscht werden", 42 | "enter_valid_plate_mileage": "Bitte geben Sie gültiges Kennzeichen und Kilometerstand ein.", 43 | "must_be_equal_or_lower": "{label} muss gleich oder niedriger als der Kilometerstand sein.", 44 | "vehicle_data_updated": "Fahrzeugdaten erfolgreich aktualisiert", 45 | "failed_update_vehicle_data": "Fehler beim Aktualisieren der Fahrzeugdaten", 46 | 47 | "spark_plug": "Zündkerzen", 48 | "oil": "Ölstand", 49 | "filter": "Ölfilter", 50 | "air_filter": "Luftfilter", 51 | "tire": "Reifen", 52 | "brake": "Bremsen", 53 | "suspension": "Aufhängung", 54 | "clutch": "Kupplung", 55 | 56 | "excellent": "Ausgezeichnet", 57 | "good": "Gut", 58 | "warning": "Warnung", 59 | "critical": "Kritisch", 60 | "disabled": "DEAKTIVIERT" 61 | }, 62 | 63 | "target": { 64 | "changeoil": "Öl wechseln...", 65 | "changeoilfilter": "Ölfilter wechseln...", 66 | "changeairfilter": "Luftfilter wechseln...", 67 | "changetires": "Reifen wechseln...", 68 | "changebrakes": "Bremsen wechseln", 69 | "changeclutch": "Kupplung wechseln", 70 | "changesuspension": "Aufhängung wechseln", 71 | "changesparkplug": "Zündkerzen wechseln" 72 | }, 73 | "progress": { 74 | "changingoil": "Ölwechsel wird durchgeführt...", 75 | "changingoilfilter": "Ölfilter wird gewechselt...", 76 | "changingairfilter": "Luftfilter wird gewechselt...", 77 | "changingtires": "Reifen werden gewechselt...", 78 | "changingbrakes": "Bremsen werden gewechselt...", 79 | "changingclutch": "Kupplung wird gewechselt...", 80 | "changingsuspension": "Aufhängung wird gewechselt...", 81 | "changingsparkplug": "Zündkerzen werden gewechselt..." 82 | }, 83 | "info": { 84 | "oil_changed": "Fahrzeug öl wurde erfolgreich gewechselt", 85 | "filter_changed": "Fahrzeug öl filter wurde erfolgreich gewechselt", 86 | "air_filter_changed": "Fahrzeug luft filter wurde erfolgreich gewechselt", 87 | "tire_changed": "Fahrzeug reifen wurden erfolgreich gewechselt", 88 | "brakes_changed": "Fahrzeug bremsen wurden erfolgreich gewechselt", 89 | "clutch_changed": "Fahrzeug kupplung wurde erfolgreich gewechselt", 90 | "suspension_changed": "Aufhängung wurde erfolgreich gewechselt", 91 | "spark_plug_changed": "Zündkerzen wurden erfolgreich gewechselt" 92 | }, 93 | "warning": { 94 | "checking_veh": "Fahrzeug überprüfen...", 95 | "remaining_oil": "Öllebensdauer bei", 96 | "remaining_filter": "Ölfilterlebensdauer bei", 97 | "remaining_air_filter": "Luftfilterlebensdauer bei", 98 | "remaining_tire": "Reifenlebensdauer bei", 99 | "remaining_brakes": "Bremslebensdauer bei", 100 | "remaining_clutch": "Kupplungslebensdauer bei", 101 | "remaining_suspension": "Lebensdauer der Aufhängung bei", 102 | "remaining_spark_plug": "Lebensdauer der Zündkerze bei", 103 | "remaining": "verbleibend", 104 | "replace_need": "Austausch erforderlich!", 105 | "replace_soon": "Bald austauschen!", 106 | "replace_immediately": "Sofort austauschen!", 107 | "engine_critical": "Motor ist aufgrund mangelnder Ölwartung kritisch beschädigt!", 108 | "stalled": "Motor ist wegen abgenutzter Kupplung abgewürgt!", 109 | "spark_plug_misfire": "Motor hat Fehlzündungen aufgrund defekter Zündkerzen!" 110 | }, 111 | "error": { 112 | "not_mechanic": "Du musst ein Mechaniker sein", 113 | "low_grade": "Du bist nicht qualifiziert genug dafür", 114 | "not_in_vehicle": "Du musst in einem Fahrzeug sein", 115 | "in_vehicle": "Du musst dein Fahrzeug verlassen", 116 | "not_found": "Fahrzeug nicht gefunden", 117 | "plate_not_found": "Fahrzeugkennzeichen nicht gefunden", 118 | "not_owned": "Dieses Fahrzeug gehört niemandem", 119 | 120 | "no_oil": "Du hast kein Motoröl", 121 | "no_oil_filter": "Du hast keinen Ölfilter", 122 | "no_air_filter": "Du hast keinen Luftfilter", 123 | "no_tires": "Du hast keine Ersatzreifen", 124 | "no_brake_parts": "Du hast keine Bremsteile", 125 | "no_clutch": "Du hast keine Kupplungsteile", 126 | "no_suspension_parts": "Du hast keine Aufhängungsteile", 127 | "no_spark_plug": "Du hast keine Zündkerzen" 128 | } 129 | } 130 | -------------------------------------------------------------------------------- /locales/fi.json: -------------------------------------------------------------------------------- 1 | { 2 | "__author": "@AI", 3 | 4 | "ui": { 5 | "mileage": "Mittarilukema", 6 | "unit_km": " Km", 7 | "unit_miles": " Mailia", 8 | 9 | "save": "Tallenna", 10 | "edit": "Muokkaa", 11 | "delete": "Poista", 12 | "cancel": "Peruuta", 13 | "close": "Sulje", 14 | 15 | "mileage_meter_ui": "Mittarilukeman käyttöliittymä", 16 | "checkwear_ui": "Kuluman tarkistus käyttöliittymä", 17 | "show_mileage_meter": "Näytä mittarilukema", 18 | "size": "Koko", 19 | "position": "Sijainti (X, Y)", 20 | 21 | "vehicle_mileage_db": "Ajoneuvon mittarilukematietokanta", 22 | "edit_veh_data": "Muokkaa ajoneuvon tietoja", 23 | "actions": "Toiminnot", 24 | "plate": "Rekisterikilpi", 25 | "last_oil_change": "Viimeisin öljynvaihto", 26 | "last_filter_change": "Viimeisin öljynsuodattimen vaihto", 27 | "last_air_filter_change": "Viimeisin ilmansuodattimen vaihto", 28 | "last_tire_change": "Viimeisin renkaiden vaihto", 29 | "last_brake_change": "Viimeisin jarrujen vaihto", 30 | "brake_wear": "Jarrujen kuluminen", 31 | "last_clutch_change": "Viimeisin kytkimen vaihto", 32 | "clutch_wear": "Kytkimen kuluminen", 33 | "last_sus_change": "Viimeisin jousituksen vaihto", 34 | "last_plugs_change": "Viimeisin sytytystulppien vaihto", 35 | 36 | "no_vehicles_found": "Ajoneuvoja ei löytynyt.", 37 | "confirm_delete_vehicle": "Haluatko varmasti poistaa tämän ajoneuvon?", 38 | "vehicle_deleted_success": "Ajoneuvo poistettu onnistuneesti.", 39 | "failed_delete_vehicle": "Ajoneuvon poistaminen epäonnistui", 40 | "enter_valid_plate_mileage": "Syötä kelvollinen rekisterikilpi ja mittarilukema.", 41 | "must_be_equal_or_lower": "{label} on oltava yhtä suuri tai pienempi kuin mittarilukema.", 42 | "vehicle_data_updated": "Ajoneuvon tiedot päivitetty onnistuneesti", 43 | "failed_update_vehicle_data": "Ajoneuvon tietojen päivitys epäonnistui", 44 | 45 | "spark_plug": "Sytytystulpat", 46 | "oil": "Öljyn kestoikä", 47 | "filter": "Öljynsuodatin", 48 | "air_filter": "Ilmansuodatin", 49 | "tire": "Renkaat", 50 | "brake": "Jarrut", 51 | "suspension": "Jousitus", 52 | "clutch": "Kytkin", 53 | 54 | "excellent": "Erinomainen", 55 | "good": "Hyvä", 56 | "warning": "Varoitus", 57 | "critical": "Kriittinen", 58 | "disabled": "POIS KÄYTÖSTÄ" 59 | }, 60 | 61 | "target": { 62 | "changeoil": "Öljyn vaihto...", 63 | "changeoilfilter": "Öljynsuodattimen vaihto...", 64 | "changeairfilter": "Ilmansuodattimen vaihto...", 65 | "changetires": "Renkaiden vaihto...", 66 | "changebrakes": "Jarrujen vaihto", 67 | "changeclutch": "Kytkimen vaihto", 68 | "changesuspension": "Jousituksen vaihto", 69 | "changesparkplug": "Sytytystulppien vaihto" 70 | }, 71 | "progress": { 72 | "changingoil": "Öljyn vaihtaminen...", 73 | "changingoilfilter": "Öljynsuodattimen vaihtaminen...", 74 | "changingairfilter": "Ilmansuodattimen vaihtaminen...", 75 | "changingtires": "Renkaiden vaihtaminen...", 76 | "changingbrakes": "Jarrujen vaihtaminen...", 77 | "changingclutch": "Kytkimen vaihtaminen...", 78 | "changingsuspension": "Jousituksen vaihtaminen...", 79 | "changingsparkplug": "Sytytystulppien vaihtaminen..." 80 | }, 81 | "info": { 82 | "oil_changed": "Ajoneuvon öljy on vaihdettu onnistuneesti", 83 | "filter_changed": "Ajoneuvon öljynsuodatin on vaihdettu onnistuneesti", 84 | "air_filter_changed": "Ajoneuvon ilmansuodatin on vaihdettu onnistuneesti", 85 | "tire_changed": "Ajoneuvon renkaat on vaihdettu onnistuneesti", 86 | "brakes_changed": "Ajoneuvon jarrut on vaihdettu onnistuneesti", 87 | "clutch_changed": "Ajoneuvon kytkin on vaihdettu onnistuneesti", 88 | "suspension_changed": "Ajoneuvon jousitus on vaihdettu onnistuneesti", 89 | "spark_plug_changed": "Ajoneuvon sytytystulpat on vaihdettu onnistuneesti" 90 | }, 91 | "warning": { 92 | "checking_veh": "Tarkistetaan ajoneuvo...", 93 | "remaining_oil": "Öljyn käyttöikä on", 94 | "remaining_filter": "Öljynsuodattimen käyttöikä on", 95 | "remaining_air_filter": "Ilmansuodattimen käyttöikä on", 96 | "remaining_tire": "Renkaiden käyttöikä on", 97 | "remaining_brakes": "Jarrujen käyttöikä on", 98 | "remaining_clutch": "Kytkimen käyttöikä on", 99 | "remaining_suspension": "Jousituksen käyttöikä on", 100 | "remaining_spark_plug": "Sytytystulppien käyttöikä on", 101 | "remaining": "jäljellä", 102 | "replace_need": "Vaihto tarpeen!", 103 | "replace_soon": "Vaihtakaa pian!", 104 | "replace_immediately": "Vaihtakaa välittömästi!", 105 | "engine_critical": "Moottori on vakavasti vaurioitunut öljyn huollon puutteen vuoksi!", 106 | "stalled": "Moottori pysähtyi kuluneen kytkimen vuoksi!", 107 | "spark_plug_misfire": "Moottori käy epätasaisesti viallisten sytytystulppien vuoksi!" 108 | }, 109 | "error": { 110 | "not_mechanic": "Sinun täytyy olla mekaanikko tehdäksesi tämän", 111 | "low_grade": "Sinulla ei ole tarpeeksi taitoa tehdä tätä", 112 | "not_in_vehicle": "Sinun täytyy olla ajoneuvossa", 113 | "in_vehicle": "Sinun täytyy poistua ajoneuvosta", 114 | "not_found": "Ajoneuvoa ei löytynyt", 115 | "plate_not_found": "Ajoneuvon rekisterikilpiä ei löytynyt", 116 | "not_owned": "Tätä ajoneuvoa ei omista kukaan", 117 | 118 | "no_oil": "Sinulla ei ole moottoriöljyä", 119 | "no_oil_filter": "Sinulla ei ole öljynsuodatinta", 120 | "no_air_filter": "Sinulla ei ole ilmansuodatinta", 121 | "no_tires": "Sinulla ei ole vararenkaita", 122 | "no_brake_parts": "Sinulla ei ole jarruosia", 123 | "no_clutch": "Sinulla ei ole kytkinosia", 124 | "no_suspension_parts": "Sinulla ei ole jousitusosia", 125 | "no_spark_plug": "Sinulla ei ole sytytystulppia" 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /locales/es.json: -------------------------------------------------------------------------------- 1 | { 2 | "__author":"@AI", 3 | 4 | "ui": { 5 | "mileage": "Kilometraje", 6 | "unit_km": " Km", 7 | "unit_miles": " Millas", 8 | 9 | "save": "Guardar", 10 | "edit": "Editar", 11 | "delete": "Eliminar", 12 | "cancel": "Cancelar", 13 | "close": "Cerrar", 14 | 15 | "mileage_meter_ui": "Interfaz del medidor de kilometraje", 16 | "checkwear_ui": "Interfaz de desgaste", 17 | "show_mileage_meter": "Mostrar medidor de kilometraje", 18 | "size": "Tamaño", 19 | "position": "Posición (X, Y)", 20 | 21 | "vehicle_mileage_db": "Base de datos de kilometraje del vehículo", 22 | "edit_veh_data": "Editar datos del vehículo", 23 | "actions": "Acciones", 24 | "plate": "Matrícula", 25 | "last_oil_change": "Último cambio de aceite", 26 | "last_filter_change": "Último cambio de filtro de aceite", 27 | "last_air_filter_change": "Último cambio de filtro de aire", 28 | "last_tire_change": "Último cambio de neumáticos", 29 | "last_brake_change": "Último cambio de frenos", 30 | "brake_wear": "Desgaste de frenos", 31 | "last_clutch_change": "Último cambio de embrague", 32 | "clutch_wear": "Desgaste de embrague", 33 | "last_sus_change": "Último cambio de suspensión", 34 | "last_plugs_change": "Último cambio de bujías", 35 | 36 | "no_vehicles_found": "No se encontraron vehículos.", 37 | "confirm_delete_vehicle": "¿Está seguro de que desea eliminar este vehículo?", 38 | "vehicle_deleted_success": "Vehículo eliminado con éxito.", 39 | "failed_delete_vehicle": "Error al eliminar el vehículo", 40 | "enter_valid_plate_mileage": "Por favor, introduzca matrícula y kilometraje válidos.", 41 | "must_be_equal_or_lower": "{label} debe ser igual o menor que el kilometraje.", 42 | "vehicle_data_updated": "Datos del vehículo actualizados con éxito", 43 | "failed_update_vehicle_data": "Error al actualizar los datos del vehículo", 44 | 45 | "spark_plug": "Bujías", 46 | "oil": "Vida del aceite", 47 | "filter": "Filtro de aceite", 48 | "air_filter": "Filtro de aire", 49 | "tire": "Neumáticos", 50 | "brake": "Frenos", 51 | "suspension": "Suspensión", 52 | "clutch": "Embrague", 53 | 54 | "excellent": "Excelente", 55 | "good": "Bueno", 56 | "warning": "Advertencia", 57 | "critical": "Crítico", 58 | "disabled": "DESACTIVADO" 59 | }, 60 | 61 | "target": { 62 | "changeoil": "Cambiando aceite...", 63 | "changeoilfilter": "Cambiando filtro de aceite...", 64 | "changeairfilter": "Cambiando filtro de aire...", 65 | "changetires": "Cambiando neumáticos...", 66 | "changebrakes": "Cambiando frenos", 67 | "changeclutch": "Cambiando embrague", 68 | "changesuspension": "Cambiando suspensión", 69 | "changesparkplug": "Cambiando bujías" 70 | }, 71 | "progress": { 72 | "changingoil": "Cambiando aceite...", 73 | "changingoilfilter": "Cambiando filtro de aceite...", 74 | "changingairfilter": "Cambiando filtro de aire...", 75 | "changingtires": "Cambiando neumáticos...", 76 | "changingbrakes": "Cambiando frenos...", 77 | "changingclutch": "Cambiando embrague...", 78 | "changingsuspension": "Cambiando suspensión...", 79 | "changingsparkplug": "Cambiando bujías..." 80 | }, 81 | "info": { 82 | "oil_changed": "El aceite del vehículo se ha cambiado correctamente", 83 | "filter_changed": "El filtro de aceite del vehículo se ha cambiado correctamente", 84 | "air_filter_changed": "El filtro de aire del vehículo se ha cambiado correctamente", 85 | "tire_changed": "Los neumáticos del vehículo se han cambiado correctamente", 86 | "brakes_changed": "Los frenos del vehículo se han cambiado correctamente", 87 | "clutch_changed": "El embrague del vehículo se ha cambiado correctamente", 88 | "suspension_changed": "La suspensión del vehículo se ha cambiado correctamente", 89 | "spark_plug_changed": "Las bujías del vehículo se han cambiado correctamente" 90 | }, 91 | "warning": { 92 | "checking_veh": "Comprobando vehículo...", 93 | "remaining_oil": "Vida útil del aceite", 94 | "remaining_filter": "Vida útil del filtro de aceite", 95 | "remaining_air_filter": "Vida útil del filtro de aire", 96 | "remaining_tire": "Vida útil del neumático", 97 | "remaining_brakes": "Vida útil del freno", 98 | "remaining_clutch": "Vida útil del embrague", 99 | "remaining_suspension": "Vida útil de la suspensión", 100 | "remaining_spark_plug": "Vida útil de la bujía", 101 | "remaining": "restante", 102 | "replace_need": "¡Reemplazo necesario!", 103 | "replace_soon": "¡Reemplazar pronto!", 104 | "replace_immediately": "¡Reemplazar inmediatamente!", 105 | "engine_critical": "¡El motor está gravemente dañado por falta de mantenimiento de aceite!", 106 | "stalled": "¡El motor se detuvo por un embrague desgastado!", 107 | "spark_plug_misfire": "¡El motor falla debido a bujías defectuosas!" 108 | }, 109 | "error": { 110 | "not_mechanic": "Debes ser mecánico para hacer esto", 111 | "low_grade": "No tienes suficiente habilidad para hacer esto", 112 | "not_in_vehicle": "Debes estar en un vehículo", 113 | "in_vehicle": "Debes salir de tu vehículo", 114 | "not_found": "Vehículo no encontrado", 115 | "plate_not_found": "Matrícula del vehículo no encontrada", 116 | "not_owned": "Este vehículo no pertenece a nadie", 117 | "no_oil": "No tienes aceite de motor", 118 | "no_oil_filter": "No tienes filtro de aceite", 119 | "no_air_filter": "No tienes filtro de aire", 120 | "no_tires": "No tienes neumáticos de repuesto", 121 | "no_brake_parts": "No tienes piezas de freno", 122 | "no_clutch": "No tienes piezas de embrague", 123 | "no_suspension_parts": "No tienes piezas de suspensión", 124 | "no_spark_plug": "No tienes bujías" 125 | } 126 | } -------------------------------------------------------------------------------- /locales/lt.json: -------------------------------------------------------------------------------- 1 | { 2 | "__author": "@AI", 3 | 4 | "ui": { 5 | "mileage": "Rida", 6 | "unit_km": " Km", 7 | "unit_miles": " Mylios", 8 | 9 | "save": "Išsaugoti", 10 | "edit": "Redaguoti", 11 | "delete": "Ištrinti", 12 | "cancel": "Atšaukti", 13 | "close": "Uždaryti", 14 | 15 | "mileage_meter_ui": "Ridos matuoklio sąsaja", 16 | "checkwear_ui": "Dėvėjimosi patikros sąsaja", 17 | "show_mileage_meter": "Rodyti ridos matuoklį", 18 | "size": "Dydis", 19 | "position": "Pozicija (X, Y)", 20 | 21 | "vehicle_mileage_db": "Transporto priemonės ridos duomenų bazė", 22 | "edit_veh_data": "Redaguoti transporto priemonės duomenis", 23 | "actions": "Veiksmai", 24 | "plate": "Valstybinis numeris", 25 | "last_oil_change": "Paskutinis alyvos keitimas", 26 | "last_filter_change": "Paskutinis alyvos filtro keitimas", 27 | "last_air_filter_change": "Paskutinis oro filtro keitimas", 28 | "last_tire_change": "Paskutinis padangų keitimas", 29 | "last_brake_change": "Paskutinis stabdžių keitimas", 30 | "brake_wear": "Stabdžių nusidėvėjimas", 31 | "last_clutch_change": "Paskutinis sankabos keitimas", 32 | "clutch_wear": "Sankabos nusidėvėjimas", 33 | "last_sus_change": "Paskutinis pakabos keitimas", 34 | "last_plugs_change": "Paskutinis uždegimo žvakių keitimas", 35 | 36 | "no_vehicles_found": "Transporto priemonių nerasta.", 37 | "confirm_delete_vehicle": "Ar tikrai norite ištrinti šią transporto priemonę?", 38 | "vehicle_deleted_success": "Transporto priemonė sėkmingai ištrinta.", 39 | "failed_delete_vehicle": "Nepavyko ištrinti transporto priemonės", 40 | "enter_valid_plate_mileage": "Įveskite galiojančią valstybinį numerį ir ridą.", 41 | "must_be_equal_or_lower": "{label} turi būti lygus arba mažesnis už ridą.", 42 | "vehicle_data_updated": "Transporto priemonės duomenys sėkmingai atnaujinti", 43 | "failed_update_vehicle_data": "Nepavyko atnaujinti transporto priemonės duomenų", 44 | 45 | "spark_plug": "Uždegimo žvakės", 46 | "oil": "Naftos tarnavimo laikas", 47 | "filter": "Naftos filtras", 48 | "air_filter": "Oro filtras", 49 | "tire": "Padangos", 50 | "brake": "Stabdžiai", 51 | "suspension": "Pakaba", 52 | "clutch": "Sankaba", 53 | 54 | "excellent": "Puikus", 55 | "good": "Geras", 56 | "warning": "Įspėjimas", 57 | "critical": "Kritinis", 58 | "disabled": "IŠJUNGTA" 59 | }, 60 | 61 | "target": { 62 | "changeoil": "Keičiamas alyva...", 63 | "changeoilfilter": "Keičiamas alyvos filtras...", 64 | "changeairfilter": "Keičiamas oro filtras...", 65 | "changetires": "Keičiamos padangos...", 66 | "changebrakes": "Keičiami stabdžiai", 67 | "changeclutch": "Keičiamas sankabos diskas", 68 | "changesuspension": "Keičiama pakaba", 69 | "changesparkplug": "Keičiamos žvakės" 70 | }, 71 | "progress": { 72 | "changingoil": "Keičiama alyva...", 73 | "changingoilfilter": "Keičiamas alyvos filtras...", 74 | "changingairfilter": "Keičiamas oro filtras...", 75 | "changingtires": "Keičiamos padangos...", 76 | "changingbrakes": "Keičiami stabdžiai...", 77 | "changingclutch": "Keičiamas sankabos diskas...", 78 | "changingsuspension": "Keičiama pakaba...", 79 | "changingsparkplug": "Keičiamos žvakės..." 80 | }, 81 | "info": { 82 | "oil_changed": "Transporto priemonės alyva sėkmingai pakeista", 83 | "filter_changed": "Transporto priemonės alyvos filtras sėkmingai pakeistas", 84 | "air_filter_changed": "Transporto priemonės oro filtras sėkmingai pakeistas", 85 | "tire_changed": "Transporto priemonės padangos sėkmingai pakeistos", 86 | "brakes_changed": "Transporto priemonės stabdžiai sėkmingai pakeisti", 87 | "clutch_changed": "Transporto priemonės sankaba sėkmingai pakeista", 88 | "suspension_changed": "Transporto priemonės pakaba sėkmingai pakeista", 89 | "spark_plug_changed": "Transporto priemonės žvakės sėkmingai pakeistos" 90 | }, 91 | "warning": { 92 | "checking_veh": "Tikrinama transporto priemonė...", 93 | "remaining_oil": "Alyvos tarnavimo laikas liko", 94 | "remaining_filter": "Alyvos filtro tarnavimo laikas liko", 95 | "remaining_air_filter": "Oro filtro tarnavimo laikas liko", 96 | "remaining_tire": "Padangų tarnavimo laikas liko", 97 | "remaining_brakes": "Stabdžių tarnavimo laikas liko", 98 | "remaining_clutch": "Sankabos tarnavimo laikas liko", 99 | "remaining_suspension": "Pakabos tarnavimo laikas liko", 100 | "remaining_spark_plug": "Žvakių tarnavimo laikas liko", 101 | "remaining": "liko", 102 | "replace_need": "Reikia pakeisti!", 103 | "replace_soon": "Pakeiskite greitai!", 104 | "replace_immediately": "Pakeiskite nedelsiant!", 105 | "engine_critical": "Variklis kritiškai pažeistas dėl alyvos priežiūros trūkumo!", 106 | "stalled": "Variklis užgeso dėl susidėvėjusios sankabos!", 107 | "spark_plug_misfire": "Variklis netinkamai veikia dėl sugedusių žvakių!" 108 | }, 109 | "error": { 110 | "not_mechanic": "Turite būti mechanikas, kad tai atliktumėte", 111 | "low_grade": "Neturite pakankamai įgūdžių tai atlikti", 112 | "not_in_vehicle": "Turite būti transporto priemonėje", 113 | "in_vehicle": "Turite išlipti iš transporto priemonės", 114 | "not_found": "Transporto priemonė nerasta", 115 | "plate_not_found": "Transporto priemonės numeris nerastas", 116 | "not_owned": "Ši transporto priemonė nepriklauso niekam", 117 | 118 | "no_oil": "Neturite variklio alyvos", 119 | "no_oil_filter": "Neturite alyvos filtro", 120 | "no_air_filter": "Neturite oro filtro", 121 | "no_tires": "Neturite atsarginių padangų", 122 | "no_brake_parts": "Neturite stabdžių dalių", 123 | "no_clutch": "Neturite sankabos dalių", 124 | "no_suspension_parts": "Neturite pakabos dalių", 125 | "no_spark_plug": "Neturite žvakių" 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /locales/fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "__author":"@junior", 3 | 4 | 5 | 6 | "ui": { 7 | "mileage": "Mileage", 8 | "unit_km": " Km", 9 | "unit_miles": " Miles", 10 | 11 | "save": "Enregistrer", 12 | "edit": "Modifier", 13 | "delete": "Supprimer", 14 | "cancel": "Annuler", 15 | "close": "Fermer", 16 | 17 | "mileage_meter_ui": "Interface du compteur kilométrique", 18 | "checkwear_ui": "Interface d'usure", 19 | "show_mileage_meter": "Afficher le compteur kilométrique", 20 | "size": "Taille", 21 | "position": "Position (X, Y)", 22 | 23 | "vehicle_mileage_db": "Base de données kilométrage véhicule", 24 | "edit_veh_data": "Modifier les données du véhicule", 25 | "actions": "Actions", 26 | "plate": "Plaque", 27 | "last_oil_change": "Dernier changement d'huile", 28 | "last_filter_change": "Dernier changement de filtre à huile", 29 | "last_air_filter_change": "Dernier changement de filtre à air", 30 | "last_tire_change": "Dernier changement de pneus", 31 | "last_brake_change": "Dernier changement de freins", 32 | "brake_wear": "Usure des freins", 33 | "last_clutch_change": "Dernier changement d'embrayage", 34 | "clutch_wear": "Usure de l'embrayage", 35 | "last_sus_change": "Dernier changement de suspension", 36 | "last_plugs_change": "Dernier changement de bougies", 37 | 38 | "no_vehicles_found": "Aucun véhicule trouvé.", 39 | "confirm_delete_vehicle": "Êtes-vous sûr de vouloir supprimer ce véhicule ?", 40 | "vehicle_deleted_success": "Véhicule supprimé avec succès.", 41 | "failed_delete_vehicle": "Échec de la suppression du véhicule", 42 | "enter_valid_plate_mileage": "Veuillez entrer une plaque et un kilométrage valides.", 43 | "must_be_equal_or_lower": "{label} doit être égal ou inférieur au kilométrage.", 44 | "vehicle_data_updated": "Données du véhicule mises à jour avec succès", 45 | "failed_update_vehicle_data": "Échec de la mise à jour des données du véhicule", 46 | 47 | "spark_plug": "Bougies d'allumage", 48 | "oil": "Durée de vie de l'huile", 49 | "filter": "Filtre à huile", 50 | "air_filter": "Filtre à air", 51 | "tire": "Pneus", 52 | "brake": "Freins", 53 | "suspension": "Suspension", 54 | "clutch": "Embrayage", 55 | 56 | "excellent": "Excellent", 57 | "good": "Bon", 58 | "warning": "Avertissement", 59 | "critical": "Critique", 60 | "disabled": "DÉSACTIVÉ" 61 | }, 62 | 63 | "target": { 64 | "changeoil": "Changer l’huile… ", 65 | "changeoilfilter": "Changer le filtre à huile… ", 66 | "changeairfilter": "Changer le filtre à air… ", 67 | "changetires": "Changer les pneus… ", 68 | "changebrakes": "Changer les freins", 69 | "changeclutch": "Changer l’embrayage", 70 | "changesuspension": "Changer la suspension", 71 | "changesparkplug": "Changer les bougies d’allumage" 72 | }, 73 | "progress": { 74 | "changingoil": "Changement d’huile en cours…", 75 | "changingoilfilter": "Changement du filtre à huile en cours…", 76 | "changingairfilter": "Changement du filtre à air en cours…", 77 | "changingtires": "Changement des pneus en cours…", 78 | "changingbrakes": "Changement des freins en cours…", 79 | "changingclutch": "Changement de l’embrayage en cours…", 80 | "changingsuspension": "Changement de la suspension en cours…", 81 | "changingsparkplug": "Changement des bougies d’allumage en cours…" 82 | }, 83 | "info": { 84 | "oil_changed": "L’huile du véhicule a été changée avec succès", 85 | "filter_changed": "Le filtre à huile du véhicule a été changé avec succès", 86 | "air_filter_changed": "Le filtre à air du véhicule a été changé avec succès", 87 | "tire_changed": "Les pneus du véhicule ont été changés avec succès", 88 | "brakes_changed": "Les freins du véhicule ont été changés avec succès", 89 | "clutch_changed": "L’embrayage du véhicule a été changé avec succès", 90 | "suspension_changed": "La suspension du véhicule a été changée avec succès", 91 | "spark_plug_changed": "Les bougies d’allumage du véhicule ont été changées avec succès" 92 | }, 93 | "warning": { 94 | "checking_veh": "Vérification du véhicule...", 95 | "remaining_oil": "Durée de vie de l’huile à", 96 | "remaining_filter": "Durée de vie du filtre à huile à", 97 | "remaining_air_filter": "Durée de vie du filtre à air à", 98 | "remaining_tire": "Durée de vie des pneus à", 99 | "remaining_brakes": "Durée de vie des freins à", 100 | "remaining_clutch": "Durée de vie de l’embrayage à", 101 | "remaining_suspension": "Durée de vie de la suspension à", 102 | "remaining_spark_plug": "Durée de vie des bougies d’allumage à", 103 | "remaining": "restant", 104 | "replace_need": "Remplacement nécessaire !", 105 | "replace_soon": "À remplacer bientôt !", 106 | "replace_immediately": "Remplacer immédiatement !", 107 | "engine_critical": "Le moteur est gravement endommagé en raison d’un manque d’entretien de l’huile !", 108 | "stalled": "Le moteur a calé à cause d’un embrayage usé !", 109 | "spark_plug_misfire": "Le moteur fait des ratés à cause de bougies d’allumage défectueuses !" 110 | }, 111 | "error": { 112 | "not_mechanic": "Tu dois être mécanicien", 113 | "low_grade": "Tu n’es pas assez qualifié pour ça", 114 | "not_in_vehicle": "Tu dois être dans un véhicule", 115 | "in_vehicle": "Vous devez sortir de votre véhicule", 116 | "not_found": "Véhicule introuvable", 117 | "plate_not_found": "Plaque du véhicule introuvable", 118 | "not_owned": "Ce véhicule n’appartient à personne", 119 | 120 | "no_oil": "Tu n’as pas d’huile moteur", 121 | "no_oil_filter": "Tu n’as pas de filtre à huile", 122 | "no_air_filter": "Tu n’as pas de filtre à air", 123 | "no_tires": "Tu n’as pas de pneus de rechange", 124 | "no_brake_parts": "Tu n’as pas de pièces de frein", 125 | "no_clutch": "Tu n’as pas de pièces d’embrayage", 126 | "no_suspension_parts": "Tu n’as pas de pièces de suspension", 127 | "no_spark_plug": "Tu n’as pas de bougies d’allumage" 128 | } 129 | } 130 | -------------------------------------------------------------------------------- /html/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Wizard Mileage UI 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 |
18 | 19 | 20 |
21 |
22 | 42 |
43 | 44 | 45 |
46 |
47 |

48 | 53 | 54 | 55 | 56 |
57 | 58 | 59 |
60 |
61 |
62 |
63 |
64 |

65 | 66 | 67 | 68 |
69 | 70 | 71 |
72 |
73 | 74 | 75 |
76 | 77 | 78 | 79 | 141 | 142 | 143 | 152 | 153 | 154 | 155 | 156 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

Wizard Mileage System

2 | 3 |

A comprehensive vehicle maintenance and mileage tracking system for FiveM servers that simulates realistic vehicle wear and tear, including oil life, filters, tires, and brake conditions. The system tracks vehicle mileage and component wear, requiring regular maintenance to maintain optimal vehicle performance. 4 |
5 |

6 | 7 | ## 📝 Table of Contents 8 | 9 | - [WIKI PAGE](https://code-wizards.gitbook.io/codewizards/mileage-system/) 10 | - [ShowCase](#showcase) 11 | - [Todo](#todo) 12 | - [Dependencies](#dependencies) 13 | - [Features Scope](#feature_scope) 14 | - [Setting up](#getting_started) 15 | - [Authors](#authors) 16 | - [Translations](#trans) 17 | - [Support](#support) 18 | - [License](#license) 19 | 20 | ## 🖼️ ShowCase 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 | 32 | ## 💡 Todo 33 | 34 | - Introduce more features 35 | - Fix existing bugs 36 | 37 | ## ⛓️ Dependencie 38 | 39 | - FrameWork: `QBox` or `QBCore` or `ESX` or `ND_Core` 40 | - SQL: [`oxmysql`](https://github.com/overextended/oxmysql) 41 | - NEEDED: [`ox_lib`](https://github.com/overextended/ox_lib) & [`wizard_lib`](https://github.com/CodeWizardsDev/wizard-lib) 42 | - Target: [`ox_target`](https://github.com/overextended/ox_target) or [`qb-target`](https://github.com/qbcore-framework/qb-target) 43 | - Inventory: `ox` or `codem` or `quasar` or `qb` or `esx` 44 | - Menu: `ox` or `QB` or `QBox` 45 | - ProgressBar: `ox` or `QB` or `QBox` 46 | - Notify: `wizard` or `ox` or `qb` or `qbx` or `okok` or `esx` 47 | 48 | ## 🚀 Features Scope 49 | 50 | ### Vehicle Mileage Tracking 51 | - Real-time mileage tracking for owned vehicles 52 | - Configurable distance units (kilometers or miles) 53 | - Customizable mileage display position on screen 54 | - Automatic mileage saving to database with configurable autosave interval 55 | - Command to reset vehicle mileage 56 | - Option to track only player-owned vehicles 57 | - Support for multiple vehicle database tables (QBCore, QBox, ESX, ND_Core) 58 | 59 | ### Spark Plug System 60 | - Spark plug wear tracking based on distance 61 | - Maintenance interval configuration 62 | - Engine misfire simulation when spark plugs are worn 63 | - Spark plug replacement service with progress bar and animation 64 | - Warning notifications for spark plug maintenance 65 | - Cancelable maintenance procedures 66 | 67 | ### Oil System 68 | - Oil life monitoring based on distance traveled 69 | - Configurable oil change intervals 70 | - Engine damage simulation when oil maintenance is neglected 71 | - Visual warnings for low oil life 72 | - Oil change service interaction for mechanics with progress bar and animation 73 | - Cancelable maintenance procedures 74 | 75 | ### Oil Filter System 76 | - Separate tracking for oil filter life 77 | - Independent oil filter change intervals 78 | - Engine performance impact when filter is worn 79 | - Service option for filter replacement with progress bar and animation 80 | - Warning system for filter maintenance 81 | - Cancelable maintenance procedures 82 | 83 | ### Air Filter System 84 | - Air filter condition monitoring 85 | - Performance impact on vehicle when filter is dirty: 86 | - Reduced top speed 87 | - Decreased acceleration 88 | - Air filter replacement service with progress bar and animation 89 | - Warning notifications for filter maintenance 90 | - Cancelable maintenance procedures 91 | 92 | ### Tire System 93 | - Tire wear tracking based on distance 94 | - Impact on vehicle handling and grip 95 | - Configurable tire wear rates and grip values 96 | - Tire replacement service with progress bar and animation 97 | - Visual wear indicators and warnings 98 | - Cancelable maintenance procedures 99 | 100 | ### Brake System 101 | - Progressive brake wear simulation 102 | - Impact on braking efficiency 103 | - Brake maintenance service with progress bar and animation 104 | - Warning system for brake condition 105 | - Configurable wear rates and efficiency loss 106 | - Cancelable maintenance procedures 107 | 108 | ### Suspension System 109 | - Suspension wear tracking and replacement service 110 | - Configurable wear rates and maximum wear values 111 | - Progress bar and animation for suspension service 112 | - Cancelable maintenance procedures 113 | 114 | ### Clutch System 115 | - Clutch wear tracking based on gear changes 116 | - Impact on vehicle performance 117 | - Engine stalls chance when clutch is worn out 118 | - Clutch replacement service with progress bar and animation 119 | - Warning system for clutch condition 120 | - Configurable wear rates and performance loss 121 | - Cancelable maintenance procedures 122 | 123 | ### Mechanic Interactions 124 | 1. Approach a vehicle 125 | 2. Use the target system (ox_target or qb-target) 126 | 3. Available maintenance options: 127 | - Replace SparkPlugs 128 | - Change Oil 129 | - Replace Oil Filter 130 | - Replace Air Filter 131 | - Change Tires 132 | - Service Brakes 133 | - Service Suspension 134 | - Replace Clutch 135 | 4. Each interaction requires appropriate inventory items 136 | 5. Progress bars and animations for maintenance actions 137 | 6. Cancelable maintenance procedures 138 | 139 | ### Job Requirements 140 | - Mechanic job required for maintenance (configurable) 141 | - Minimum job grade requirement (configurable) 142 | - Job name configurable in config.lua 143 | - Supports both ox_target and qb-target systems 144 | 145 | ### Multiple Menu Support 146 | - Supports multiple menu systems: 147 | - ox_lib 148 | - QBCore/QBox menu 149 | 150 | ### HUD Features 151 | - Real-time mileage display 152 | - Configurable position 153 | - Component wear display when using /checkwear command 154 | - Warning notifications for maintenance needs 155 | 156 | ### Database Integration 157 | - Automatic mileage saving 158 | - Persistent maintenance history 159 | - Vehicle ownership verification 160 | - Supports multiple vehicle database structures 161 | 162 | ### Disabled Vehicle Classes 163 | - Option to disable mileage tracking and maintenance for specific vehicle classes such as: 164 | - Cycles 165 | - Boats 166 | - Helicopters 167 | - Planes 168 | - Trains 169 | - Military vehicles 170 | - Commercial vehicles 171 | 172 | ### Vehicle Mileage Database UI 173 | - Interactive vehicle mileage database panel accessible in-game 174 | - Displays a list of vehicles with plate numbers and current mileage 175 | - Allows editing of vehicle data including: 176 | - Mileage 177 | - Last spark plug change 178 | - Last oil change 179 | - Last oil filter change 180 | - Last air filter change 181 | - Last tire change 182 | - Last brakes change and brake wear 183 | - Last suspension change 184 | - Last clutch change and clutch wear 185 | - Validation to ensure data consistency (e.g., last change values not exceeding mileage) 186 | - Supports deleting vehicles with user confirmation 187 | - Real-time updates and notifications for successful or failed operations 188 | - Custom confirmation modal for user actions 189 | 190 | ### Mileage UI Customizer 191 | - Allows players to toggle visibility of mileage and wear displays 192 | - Provides sliders to adjust size of mileage meter and wear bars 193 | - Allows precise positioning of UI elements via X and Y coordinates inputs 194 | - Supports dragging UI elements to reposition them interactively 195 | - Saves player customization settings persistently 196 | - Enhances user experience with customizable and flexible UI layout 197 | 198 | ## 🏁 Getting Started 199 | 200 | This guide will help you set up the script easily! 201 | 202 | ### Setting up 203 | 1. Download the folder and remove the -main suffix from it. The folder name should be wizard-mileage 204 | 205 | ### Installing 206 | [GUIDE](https://code-wizards.gitbook.io/codewizards/mileage-system/installation) 207 | 208 | ### Configuration 209 | [GUIDE](https://code-wizards.gitbook.io/codewizards/mileage-system/configuration) 210 | 211 | ## ✍️ Authors 212 | 213 | - @The_Hs5 214 | 215 | ## 🌐 Translations 216 | 217 | - English, Persian: @The_Hs5 218 | - German: @Sascha 219 | - Arabic: @abonan 220 | - French: @junior 221 | - Dutch: @meneer-Duck 222 | - Other Langs: AI 223 | 224 | ## 🤝 Support 225 | For support, join our Discord server: [CodeWizards Discord](https://discord.gg/ZBvacHyczY) 226 | 227 | ## License 228 | This project is licensed under the GNU General Public License v3.0 - see the [LICENSE](LICENSE) file for details. 229 | -------------------------------------------------------------------------------- /config/config.lua: -------------------------------------------------------------------------------- 1 | -- ┍━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┑ 2 | -- │ │ 3 | -- │ ░█████╗░░█████╗░██████╗░███████╗  ░██╗░░░░░░░██╗██╗███████╗░█████╗░██████╗░██████╗░░██████╗ │ 4 | -- │ ██╔══██╗██╔══██╗██╔══██╗██╔════╝  ░██║░░██╗░░██║██║╚════██║██╔══██╗██╔══██╗██╔══██╗██╔════╝ │ 5 | -- │ ██║░░╚═╝██║░░██║██║░░██║█████╗░░  ░╚██╗████╗██╔╝██║░░███╔═╝███████║██████╔╝██║░░██║╚█████╗░ │ 6 | -- │ ██║░░██╗██║░░██║██║░░██║██╔══╝░░  ░░████╔═████║░██║██╔══╝░░██╔══██║██╔══██╗██║░░██║░╚═══██╗ │ 7 | -- │ ╚█████╔╝╚█████╔╝██████╔╝███████╗  ░░╚██╔╝░╚██╔╝░██║███████╗██║░░██║██║░░██║██████╔╝██████╔╝ │ 8 | -- │ ░╚════╝░░╚════╝░╚═════╝░╚══════╝  ░░░╚═╝░░░╚═╝░░╚═╝╚══════╝╚═╝░░╚═╝╚═╝░░╚═╝╚═════╝░╚═════╝░ │ 9 | -- │ │ 10 | -- │ │ 11 | -- │ │ 12 | -- │ ░█──░█ █▀▀ █──█ ─▀─ █▀▀ █── █▀▀   ░█▀▄▀█ ─▀─ █── █▀▀ █▀▀█ █▀▀▀ █▀▀ │ 13 | -- │ ─░█░█─ █▀▀ █▀▀█ ▀█▀ █── █── █▀▀   ░█░█░█ ▀█▀ █── █▀▀ █▄▄█ █─▀█ █▀▀ │ 14 | -- │ ──▀▄▀─ ▀▀▀ ▀──▀ ▀▀▀ ▀▀▀ ▀▀▀ ▀▀▀   ░█──░█ ▀▀▀ ▀▀▀ ▀▀▀ ▀──▀ ▀▀▀▀ ▀▀▀ │ 15 | -- └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ 16 | -- 17 | -- Thank you for downloading our script! we're glad to help you to make your server better:) 18 | -- Feel free to contact us if you have any problem/idea for this script! 19 | -- 20 | -- This file controls all settings for the Wizard Mileage System. 21 | -- Adjust these options to fit your server's framework, inventory, UI, maintenance logic, and gameplay needs. 22 | 23 | -- 📚 Documentation: 24 | -- - Wiki: https://code-wizards.gitbook.io/codewizards/mileage-system/informations 25 | -- - Discord: https://discord.gg/ZBvacHyczY 26 | -- - GitHub: https://github.com/CodeWizardsDev 27 | 28 | -- 🛠️ Quick Reference: 29 | -- - Language, Menu, Units 30 | -- - UI Defaults, Commands, Admin Permission, Autosave, Ownership, Job Requirements 31 | -- - Targeting, Warnings, Wear Tracking, Maintenance Intervals, Items 32 | -- - Animation/Interaction Configs, Disabled Vehicle Classes 33 | 34 | -- 💡 Tip: 35 | -- All changes require a server restart or resource restart to take effect. 36 | 37 | 38 | 39 | 40 | 41 | 42 | Config = {} 43 | 44 | -- ████████████████ GENERAL SETTINGS ████████████████ 45 | 46 | Config.Debug = true -- Enable debug messages in console 47 | Config.InventoryItems = true -- Require inventory items for maintenance 48 | Config.Menu = 'ox' -- "ox" or "qb" 49 | 50 | 51 | 52 | -- ████████████████ UI & COMMANDS ████████████████ 53 | 54 | Config.DefaultUI = { 55 | mileage_visible = 1, -- 1 = visible, 0 = hidden 56 | mileage_size = 1, -- UI scale 57 | checkwear_size = 1, -- CheckWear UI scale 58 | mileage_pos_x = 1660, -- Mileage UI X position 59 | mileage_pos_y = 1012, -- Mileage UI Y position 60 | checkwear_pos_x = 1495.75, -- CheckWear UI X position 61 | checkwear_pos_y = 72.75 -- CheckWear UI Y position 62 | } 63 | 64 | Config.CustomizeCommand = 'mileageui' -- Open UI customizer 65 | Config.CheckWearCommand = 'checkwear' -- Check vehicle part condition 66 | Config.CMCommand = 'clearmileage'-- Reset vehicle mileage 67 | Config.DatabaseCommand = 'mileagedb' -- Open vehicle data list 68 | 69 | 70 | 71 | -- ████████████████ ADMIN SETTINGS ████████████████ 72 | 73 | Config.AdminPermission = 'group.admin' -- Required permission for database access 74 | 75 | 76 | 77 | -- ████████████████ AUTOSAVE & OWNERSHIP ████████████████ 78 | 79 | Config.Autosave = true -- Enable autosave for mileage 80 | Config.AutosaveInterval = 30 -- Autosave interval (seconds) 81 | Config.MinDiffToSave = 100.0 -- Minimum difference required between current mileage and last saved mileage to update the database 82 | Config.BoughtVehiclesOnly = true -- Only track owned vehicles 83 | Config.VehDB = 'player_vehicles' -- Vehicle ownership table 84 | 85 | 86 | 87 | -- ████████████████ JOB & TARGETING ████████████████ 88 | 89 | Config.JobRequired = true -- Only mechanics can service vehicles 90 | Config.MechanicJobs = { -- Allowed jobs name 91 | ['mechanic'] = 0, -- Mechanic from grade 0 92 | ['lsc'] = 2, -- LSC from grade 2 93 | } 94 | Config.Targeting = 'ox' -- "ox" or "qb", set to false to disable 95 | 96 | 97 | 98 | -- ████████████████ WARNINGS & WEAR TRACKING ████████████████ 99 | 100 | Config.ChangeWarnings = true -- Enable maintenance warnings 101 | Config.WarningsInterval = 30 -- Warning check interval (seconds) 102 | 103 | Config.Thresholds = { 104 | SparkPlugs = { 105 | { value = 1, severity = 'error', action = 'replace_immediately' }, 106 | { value = 5, severity = 'warning', action = 'replace_soon' }, 107 | { value = 10, severity = 'warning' }, 108 | { value = 25, severity = 'info' } 109 | }, 110 | 111 | Oil = { 112 | { value = 1, severity = 'error', action = 'replace_immediately' }, 113 | { value = 2, severity = 'warning', action = 'replace_soon' }, 114 | { value = 3, severity = 'warning', action = 'replace_need' }, 115 | { value = 5, severity = 'warning' }, 116 | { value = 10, severity = 'warning' }, 117 | { value = 25, severity = 'info' }, 118 | { value = 50, severity = 'info' } 119 | }, 120 | 121 | OilFilter = { 122 | { value = 1, severity = 'error', action = 'replace_immediately' }, 123 | { value = 5, severity = 'warning', action = 'replace_soon' }, 124 | { value = 10, severity = 'warning' }, 125 | { value = 25, severity = 'info' } 126 | }, 127 | 128 | AirFilter = { 129 | { value = 1, severity = 'error', action = 'replace_immediately' }, 130 | { value = 5, severity = 'warning', action = 'replace_soon' }, 131 | { value = 10, severity = 'warning' }, 132 | { value = 25, severity = 'info' } 133 | }, 134 | 135 | Tires = { 136 | { value = 1, severity = 'error', action = 'replace_immediately' }, 137 | { value = 2, severity = 'warning', action = 'replace_soon' }, 138 | { value = 3, severity = 'warning', action = 'replace_need' }, 139 | { value = 5, severity = 'warning', action = 'replace_need' }, 140 | { value = 10, severity = 'warning' }, 141 | { value = 25, severity = 'info' }, 142 | { value = 50, severity = 'info' } 143 | }, 144 | 145 | Brakes = { 146 | { value = 1, severity = 'error', action = 'replace_immediately' }, 147 | { value = 5, severity = 'warning', action = 'replace_soon' }, 148 | { value = 10, severity = 'warning' }, 149 | { value = 25, severity = 'info' } 150 | }, 151 | 152 | Suspension = { 153 | { value = 1, severity = 'error', action = 'replace_immediately' }, 154 | { value = 5, severity = 'warning', action = 'replace_soon' }, 155 | { value = 10, severity = 'warning' }, 156 | { value = 25, severity = 'info' } 157 | }, 158 | 159 | Clutch = { 160 | { value = 1, severity = 'error', action = 'replace_immediately' }, 161 | { value = 5, severity = 'warning', action = 'replace_soon' }, 162 | { value = 10, severity = 'warning' }, 163 | { value = 25, severity = 'info' } 164 | }, 165 | } 166 | 167 | Config.WearTracking = { 168 | SparkPlugs = true, -- Track spark plug wear 169 | Oil = true, -- Track oil/oil filter wear 170 | AirFilter = true, -- Track air filter wear 171 | Tires = true, -- Track tire wear 172 | Brakes = true, -- Track brake wear 173 | Suspension = true, -- Track suspension wear 174 | Clutch = true -- Track clutch wear 175 | } 176 | 177 | Config.CheckVehicle = { 178 | Animation = "base", 179 | AnimDict = "amb@world_human_clipboard@male@base", 180 | 181 | Object = "prop_notepad_01", -- Object to attach to the player 182 | Bone = 60309 -- Target bone to attach the object to 183 | } 184 | 185 | 186 | 187 | -- ████████████████ MAINTENANCE INTERVALS & EFFECTS ████████████████ 188 | 189 | Config.SparkPlugChangeDistance = 13000 -- Distance before spark plug change (km/miles) 190 | Config.MaxSparkPlugWear = 0.02 -- Max spark plug wear value 191 | Config.MissfireChance = 0.3 -- Chance of misfire when worn (0-1) 192 | 193 | Config.OilChangeDistance = 4300 -- Distance before oil change 194 | Config.OilFilterDistance = 8600 -- Distance before oil filter change 195 | Config.EngineDamageRate = 0.5 -- Engine damage rate from poor maintenance 196 | 197 | Config.AirFilterDistance = 13000 -- Distance before air filter change 198 | Config.MaxSpeedReduction = 0.2 -- Max speed reduction (0-1) 199 | Config.AccelerationReduction = 0.3 -- Max acceleration reduction (0-1) 200 | 201 | Config.TireWearDistance = 10800 -- Distance before tire change 202 | Config.BaseTireGrip = 2.5 -- New tire grip 203 | Config.MinTireGrip = 0.5 -- Worn tire grip 204 | 205 | Config.BrakeWearRate = 0.08 -- Brake wear rate 206 | Config.MaxBrakeWear = 100.0 -- Max brake wear value 207 | Config.BrakeEfficiencyLoss = 1.0 -- Braking power loss when worn 208 | Config.BaseBrakeForce = 1.0 -- Base brake force 209 | 210 | Config.SuspensionChangeDistance= 43200 -- Distance before suspension change 211 | Config.MaxSuspensionWear = 1.0 -- Max suspension wear value 212 | 213 | Config.ClutchWearRate = 0.1 -- Clutch wear rate 214 | Config.MaxClutchWear = 100.0 -- Max clutch wear value 215 | Config.ClutchEfficiencyLoss = 0.8 -- Power loss when clutch is worn 216 | Config.BaseClutchForce = 1.0 -- Base clutch force 217 | Config.StallChance = 0.4 -- Stall chance when clutch is worn 218 | 219 | 220 | 221 | -- ████████████████ ITEM NAMES (INVENTORY) ████████████████ 222 | 223 | Config.Items = { 224 | SparkPlug = "spark_plugs", 225 | EngineOil = "engine_oil", 226 | OilFilter = "oil_filter", 227 | AirFilter = "air_filter", 228 | Tires = "tires", 229 | BrakeParts = "brake_parts", 230 | SusParts = "suspension_parts", 231 | Clutch = "clutch" 232 | } 233 | 234 | 235 | 236 | -- ████████████████ INTERACTION ANIMATION CONFIGS ████████████████ 237 | 238 | Config.ChangeSparkPlug = { 239 | Animation = "fixing_a_ped", 240 | AnimationDict = "mini@repair", 241 | Duration = 5000, 242 | FreezeCar = true, 243 | FreezePlayer = true, 244 | Cancelable = true 245 | } 246 | 247 | Config.ChangeOil = { 248 | Animation = "fixing_a_ped", 249 | AnimationDict = "mini@repair", 250 | Duration = 10000, 251 | FreezeCar = true, 252 | FreezePlayer = true, 253 | Cancelable = true 254 | } 255 | 256 | Config.ChangeOilFilter = { 257 | Animation = "fixing_a_player", 258 | AnimationDict = "mini@repair", 259 | Duration = 5000, 260 | FreezeCar = true, 261 | FreezePlayer = true, 262 | Cancelable = true 263 | } 264 | 265 | Config.ChangeAirFilter = { 266 | Animation = "work2_base", 267 | AnimationDict = "missmechanic", 268 | Duration = 3000, 269 | FreezeCar = true, 270 | FreezePlayer = true, 271 | Cancelable = true 272 | } 273 | 274 | Config.ChangeTires = { 275 | Animation = "car_bomb_mechanic", 276 | AnimationDict = "mp_car_bomb", 277 | Duration = 7000, 278 | FreezeCar = true, 279 | FreezePlayer = true, 280 | Cancelable = true 281 | } 282 | 283 | Config.ChangeBrakes = { 284 | Animation = "machinic_loop_mechandplayer", 285 | AnimationDict = "anim@amb@clubhouse@tutorial@bkr_tut_ig3@", 286 | Duration = 5000, 287 | FreezeCar = true, 288 | FreezePlayer = true, 289 | Cancelable = true 290 | } 291 | 292 | Config.ChangeSuspension = { 293 | Animation = "car_bomb_mechanic", 294 | AnimationDict = "mp_car_bomb", 295 | Duration = 7000, 296 | FreezeCar = true, 297 | FreezePlayer = true, 298 | Cancelable = true 299 | } 300 | 301 | Config.ChangeClutch = { 302 | Animation = "fixing_a_ped", 303 | AnimationDict = "mini@repair", 304 | Duration = 15000, 305 | FreezeCar = true, 306 | FreezePlayer = true, 307 | Cancelable = true 308 | } 309 | 310 | -- ████████████████ DISABLED VEHICLE CLASSES ████████████████ 311 | -- Set to true to disable mileage/wear for that class 312 | Config.DisabledVehicleClasses = { 313 | --[0] = true, -- Compacts 314 | --[1] = true, -- Sedans 315 | --[2] = true, -- SUVs 316 | --[3] = true, -- Coupes 317 | --[4] = true, -- Muscle 318 | --[5] = true, -- Sports Classics 319 | --[6] = true, -- Sports 320 | --[7] = true, -- Super 321 | --[8] = true, -- Motorcycles 322 | --[9] = true, -- OFf-Road 323 | --[10] = true, -- Industrial 324 | --[11] = true, -- Utility 325 | --[12] = true, -- Vans 326 | [13] = true, -- Cycles 327 | [14] = true, -- Boats 328 | [15] = true, -- Helicopters 329 | [16] = true, -- Planes 330 | [21] = true, -- Trains 331 | [19] = true, -- Military vehicles 332 | [20] = true, -- Commercial vehicles 333 | [21] = true, -- Trains 334 | [22] = true -- Open Wheel 335 | } -------------------------------------------------------------------------------- /html/style.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --glass-bg: linear-gradient(135deg, #1a1a2ed7 0%, #16213ed7 100%); 3 | --glass-border: rgba(255, 255, 255, 0.15); 4 | --text-primary: #ffffff; 5 | --text-secondary: rgba(255, 255, 255, 0.7); 6 | --accent-blue: #4dabf7; 7 | --accent-green: #69db7c; 8 | --accent-orange: #ffa94d; 9 | --accent-red: #ff2f2f; 10 | --accent-purple: #9775fa; 11 | --accent-yellow: #faed75; 12 | --transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); 13 | } 14 | 15 | body { 16 | font-family: 'Inter', -apple-system, system-ui, sans-serif; 17 | color: var(--text-primary); 18 | min-height: 100vh; 19 | overflow: hidden; 20 | } 21 | 22 | /* ---------------- Mileage Meter ---------------- */ 23 | #mileageDisplay { 24 | position: fixed; 25 | padding: 12px 24px; 26 | background: var(--glass-bg); 27 | border-radius: 12px; 28 | border: 1px solid var(--glass-border); 29 | color: var(--text-primary); 30 | font-size: 1rem; 31 | font-weight: 500; 32 | display: none; 33 | align-items: center; 34 | gap: 10px; 35 | z-index: 1000; 36 | box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2); 37 | transition: var(--transition); 38 | } 39 | 40 | #mileageDisplay>span[data-locale="mileage"] { 41 | display: inline-block; 42 | position: relative; 43 | top: 2px; 44 | } 45 | 46 | 47 | /* ---------------- CheckWear UI ---------------- */ 48 | .wear-container { 49 | top: 10%; 50 | right: 1%; 51 | position: fixed; 52 | padding: 24px; 53 | background: var(--glass-bg); 54 | border-radius: 16px; 55 | border: 1px solid var(--glass-border); 56 | width: 360px; 57 | box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2); 58 | transition: var(--transition); 59 | display: none; 60 | } 61 | 62 | .wear-mileage-title { 63 | font-size: 1.2rem; 64 | font-weight: 700; 65 | color: var(--accent-red); 66 | text-align: center; 67 | margin-bottom: 12px; 68 | } 69 | 70 | .wear-bar { 71 | margin: 24px 0; 72 | position: relative; 73 | } 74 | 75 | .wear-label { 76 | display: flex; 77 | align-items: center; 78 | justify-content: space-between; 79 | margin-bottom: 12px; 80 | color: var(--text-primary); 81 | font-size: 0.95rem; 82 | font-weight: 500; 83 | } 84 | 85 | .wear-label-left { 86 | display: flex; 87 | align-items: center; 88 | gap: 10px; 89 | } 90 | 91 | .wear-icon { 92 | width: 32px; 93 | height: 32px; 94 | border-radius: 8px; 95 | display: flex; 96 | align-items: center; 97 | justify-content: center; 98 | background: rgba(255, 255, 255, 0.1); 99 | } 100 | 101 | .progress-container { 102 | position: relative; 103 | height: 6px; 104 | background: rgba(255, 255, 255, 0.1); 105 | border-radius: 3px; 106 | overflow: hidden; 107 | } 108 | 109 | .progress-bar { 110 | position: relative; 111 | height: 100%; 112 | width: 100%; 113 | } 114 | 115 | .progress { 116 | height: 100%; 117 | border-radius: 3px; 118 | transition: var(--transition); 119 | position: relative; 120 | } 121 | 122 | .progress::after { 123 | content: ''; 124 | position: absolute; 125 | top: 0; 126 | left: 0; 127 | right: 0; 128 | bottom: 0; 129 | background: linear-gradient(90deg, 130 | rgba(255, 255, 255, 0) 0%, 131 | rgba(255, 255, 255, 0.3) 50%, 132 | rgba(255, 255, 255, 0) 100%); 133 | animation: shine 2.5s infinite; 134 | } 135 | 136 | .progress-info { 137 | display: flex; 138 | justify-content: space-between; 139 | margin-top: 8px; 140 | font-size: 0.85rem; 141 | color: var(--text-secondary); 142 | } 143 | 144 | .status-indicator { 145 | width: 10px; 146 | height: 10px; 147 | border-radius: 50%; 148 | display: inline-block; 149 | margin-left: 8px; 150 | } 151 | 152 | .health-status { 153 | font-size: 0.85rem; 154 | font-weight: 600; 155 | text-transform: uppercase; 156 | letter-spacing: 0.5px; 157 | } 158 | 159 | .engine .wear-icon { 160 | background: rgba(77, 171, 247, 0.2); 161 | color: var(--accent-blue); 162 | } 163 | 164 | .tires .wear-icon { 165 | background: rgba(105, 219, 124, 0.2); 166 | color: var(--accent-green); 167 | } 168 | 169 | .brakes .wear-icon { 170 | background: rgba(255, 107, 107, 0.2); 171 | color: var(--accent-red); 172 | } 173 | 174 | .suspension .wear-icon { 175 | background: rgba(250, 237, 117, 0.2); 176 | color: var(--accent-yellow); 177 | } 178 | 179 | .transmission .wear-icon { 180 | background: rgba(151, 117, 250, 0.2); 181 | color: var(--accent-purple); 182 | } 183 | 184 | .engine .progress { 185 | background: var(--accent-blue); 186 | } 187 | 188 | .tires .progress { 189 | background: var(--accent-green); 190 | } 191 | 192 | .brakes .progress { 193 | background: var(--accent-red); 194 | } 195 | 196 | .suspension .progress { 197 | background: var(--accent-yellow); 198 | } 199 | 200 | .transmission .progress { 201 | background: var(--accent-purple); 202 | } 203 | 204 | .engine .status-indicator { 205 | background: var(--accent-blue); 206 | } 207 | 208 | .tires .status-indicator { 209 | background: var(--accent-green); 210 | } 211 | 212 | .brakes .status-indicator { 213 | background: var(--accent-red); 214 | } 215 | 216 | .suspension .status-indicator { 217 | background: var(--accent-yellow); 218 | } 219 | 220 | .transmission .status-indicator { 221 | background: var(--accent-purple); 222 | } 223 | 224 | .health-excellent { 225 | color: var(--accent-green); 226 | } 227 | 228 | .health-good { 229 | color: var(--accent-blue); 230 | } 231 | 232 | .health-warning { 233 | color: var(--accent-orange); 234 | } 235 | 236 | .health-critical { 237 | color: var(--accent-red); 238 | } 239 | 240 | .health-disabled .wear-icon { 241 | background: gray !important; 242 | color: #888 !important; 243 | } 244 | 245 | .health-disabled .progress { 246 | background: gray !important; 247 | } 248 | 249 | .health-disabled .percent { 250 | color: red !important; 251 | font-weight: bold; 252 | } 253 | 254 | .health-disabled .status-indicator { 255 | background: gray !important; 256 | } 257 | 258 | 259 | /* ---------------- Customization UI ---------------- */ 260 | #customizationUI { 261 | position: fixed; 262 | top: 50%; 263 | left: 50%; 264 | transform: translate(-50%, -50%); 265 | background: var(--glass-bg); 266 | border-radius: 20px; 267 | border: 1px solid var(--glass-border); 268 | width: 380px; 269 | padding: 32px 36px; 270 | box-shadow: 0 12px 48px rgba(0, 0, 0, 0.3); 271 | color: var(--text-primary); 272 | font-family: 'Inter', -apple-system, system-ui, sans-serif; 273 | display: none; 274 | z-index: 1100; 275 | transition: var(--transition); 276 | } 277 | 278 | #customizationUI h1, 279 | #customizationUI h3 { 280 | font-weight: 700; 281 | font-size: 1.6rem; 282 | margin-bottom: 20px; 283 | color: var(--accent-red); 284 | text-align: center; 285 | letter-spacing: 1px; 286 | } 287 | 288 | #customizationUI label { 289 | display: block; 290 | margin: 14px 0 8px; 291 | font-weight: 600; 292 | font-size: 1rem; 293 | color: var(--text-primary); 294 | cursor: pointer; 295 | transition: color 0.3s ease; 296 | } 297 | 298 | #customizationUI label:hover { 299 | color: var(--accent-blue); 300 | } 301 | 302 | #customizationUI input[type="range"] { 303 | width: 100%; 304 | -webkit-appearance: none; 305 | appearance: none; 306 | height: 8px; 307 | border-radius: 6px; 308 | background: rgba(255, 255, 255, 0.15); 309 | outline: none; 310 | transition: background 0.3s ease; 311 | cursor: pointer; 312 | margin-top: 6px; 313 | } 314 | 315 | #customizationUI input[type="range"]::-webkit-slider-thumb { 316 | -webkit-appearance: none; 317 | appearance: none; 318 | width: 22px; 319 | height: 22px; 320 | border-radius: 50%; 321 | background: var(--accent-red); 322 | cursor: pointer; 323 | box-shadow: 0 0 8px var(--accent-red); 324 | transition: background 0.3s ease, box-shadow 0.3s ease; 325 | border: none; 326 | margin-top: -7px; 327 | } 328 | 329 | #customizationUI input[type="range"]:hover::-webkit-slider-thumb { 330 | background: var(--accent-blue); 331 | box-shadow: 0 0 12px var(--accent-blue); 332 | } 333 | 334 | #customizationUI input[type="range"]::-moz-range-thumb { 335 | width: 22px; 336 | height: 22px; 337 | border-radius: 50%; 338 | background: var(--accent-red); 339 | cursor: pointer; 340 | box-shadow: 0 0 8px var(--accent-red); 341 | border: none; 342 | transition: background 0.3s ease, box-shadow 0.3s ease; 343 | } 344 | 345 | #customizationUI input[type="range"]:hover::-moz-range-thumb { 346 | background: var(--accent-blue); 347 | box-shadow: 0 0 12px var(--accent-blue); 348 | } 349 | 350 | #customizationUI .checkbox-label { 351 | display: flex; 352 | align-items: center; 353 | cursor: pointer; 354 | -webkit-user-select: none; 355 | user-select: none; 356 | margin: 12px 0; 357 | position: relative; 358 | padding-left: 50px; 359 | font-weight: 600; 360 | font-size: 1rem; 361 | color: var(--text-primary); 362 | transition: color 0.3s ease; 363 | } 364 | 365 | #customizationUI .checkbox-label input[type="checkbox"] { 366 | position: absolute; 367 | opacity: 0; 368 | cursor: pointer; 369 | height: 0; 370 | width: 0; 371 | } 372 | 373 | #customizationUI .checkbox-label .slider { 374 | position: absolute; 375 | left: 0; 376 | top: 50%; 377 | transform: translateY(-50%); 378 | width: 40px; 379 | height: 22px; 380 | background-color: rgba(255, 255, 255, 0.2); 381 | border-radius: 34px; 382 | transition: background-color 0.4s; 383 | box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2); 384 | } 385 | 386 | #customizationUI .checkbox-label .slider::before { 387 | content: ""; 388 | position: absolute; 389 | height: 18px; 390 | width: 18px; 391 | left: 2px; 392 | top: 2px; 393 | background-color: white; 394 | border-radius: 50%; 395 | transition: transform 0.4s; 396 | box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); 397 | } 398 | 399 | #customizationUI .checkbox-label input[type="checkbox"]:checked+.slider { 400 | background-color: var(--accent-red); 401 | box-shadow: 0 0 8px var(--accent-red); 402 | } 403 | 404 | #customizationUI .checkbox-label input[type="checkbox"]:checked+.slider::before { 405 | transform: translateX(18px); 406 | } 407 | 408 | #customizationUI .pos-inputs { 409 | display: flex; 410 | gap: 16px; 411 | margin-top: 8px; 412 | } 413 | 414 | #customizationUI .pos-inputs input[type="number"] { 415 | flex: 1; 416 | padding: 6px 8px; 417 | border: 1.5px solid var(--glass-border); 418 | border-radius: 6px; 419 | background-color: var(--glass-bg); 420 | color: var(--text-primary); 421 | font-size: 1rem; 422 | transition: border-color 0.3s, box-shadow 0.3s; 423 | outline: none; 424 | box-shadow: none; 425 | width: 50%; 426 | } 427 | 428 | #customizationUI .pos-inputs input[type="number"]:focus { 429 | border-color: var(--accent-blue); 430 | box-shadow: 0 0 8px var(--accent-blue); 431 | } 432 | 433 | #customizationUI button { 434 | margin-top: 24px; 435 | padding: 12px 20px; 436 | background: linear-gradient(135deg, var(--accent-red), var(--accent-orange)); 437 | border: none; 438 | color: white; 439 | cursor: pointer; 440 | border-radius: 12px; 441 | font-weight: 700; 442 | font-size: 1.1rem; 443 | box-shadow: 0 6px 15px rgba(255, 107, 107, 0.6); 444 | transition: background 0.4s, box-shadow 0.4s; 445 | } 446 | 447 | #customizationUI #closeUIButton { 448 | margin-left: 10px; 449 | background: #dc3545; 450 | } 451 | 452 | #customizationUI button:hover { 453 | background: linear-gradient(135deg, var(--accent-orange), var(--accent-red)); 454 | box-shadow: 0 8px 20px rgba(255, 107, 107, 0.8); 455 | } 456 | 457 | #customizationUI button:active { 458 | transform: scale(0.98); 459 | box-shadow: 0 4px 10px rgba(255, 107, 107, 0.5); 460 | } 461 | 462 | @media (max-width: 420px) { 463 | #customizationUI { 464 | width: 90%; 465 | padding: 24px 20px; 466 | } 467 | 468 | #customizationUI .pos-inputs { 469 | flex-direction: column; 470 | } 471 | 472 | #customizationUI .pos-inputs input[type="number"] { 473 | width: 100%; 474 | } 475 | } 476 | 477 | 478 | /* ---------------- Database management ---------------- */ 479 | .database-menu { 480 | position: fixed; 481 | top: 10%; 482 | left: 50%; 483 | transform: translateX(-50%); 484 | background: var(--glass-bg); 485 | border-radius: 16px; 486 | border: 1px solid var(--glass-border); 487 | width: 600px; 488 | max-height: 70vh; 489 | overflow-y: auto; 490 | box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); 491 | color: var(--text-primary); 492 | font-family: 'Inter', -apple-system, system-ui, sans-serif; 493 | z-index: 1200; 494 | padding: 20px; 495 | } 496 | 497 | .database-menu h2 { 498 | margin-top: 0; 499 | text-align: center; 500 | color: var(--accent-red); 501 | } 502 | 503 | .close-btn { 504 | position: absolute; 505 | top: 10px; 506 | right: 10px; 507 | background: var(--accent-red); 508 | border: none; 509 | color: white; 510 | font-weight: bold; 511 | padding: 6px 12px; 512 | border-radius: 8px; 513 | cursor: pointer; 514 | transition: background 0.3s ease; 515 | } 516 | 517 | .close-btn:hover { 518 | background: var(--accent-orange); 519 | } 520 | 521 | .vehicle-list-container { 522 | margin-top: 20px; 523 | } 524 | 525 | .vehicle-list-table { 526 | width: 100%; 527 | border-collapse: collapse; 528 | } 529 | 530 | .vehicle-list-table th, 531 | .vehicle-list-table td { 532 | border: 1px solid var(--glass-border); 533 | padding: 8px 12px; 534 | text-align: left; 535 | } 536 | 537 | .vehicle-list-table th { 538 | background: rgba(255, 255, 255, 0.1); 539 | } 540 | 541 | .edit-button { 542 | background: var(--accent-purple); 543 | border: none; 544 | color: white; 545 | font-weight: bold; 546 | padding: 6px 12px; 547 | border-radius: 8px; 548 | cursor: pointer; 549 | transition: background 0.3s ease; 550 | } 551 | 552 | .edit-button:hover { 553 | background: var(--accent-blue); 554 | } 555 | 556 | .delete-button { 557 | background: var(--accent-red); 558 | border: none; 559 | color: white; 560 | font-weight: bold; 561 | padding: 6px 12px; 562 | border-radius: 8px; 563 | cursor: pointer; 564 | transition: background 0.3s ease; 565 | margin-left: 8px; 566 | } 567 | 568 | .delete-button:hover { 569 | background: #913434cc; 570 | } 571 | 572 | .vehicle-edit-container { 573 | margin-top: 20px; 574 | background: var(--glass-bg); 575 | border-radius: 12px; 576 | padding: 16px; 577 | border: 1px solid var(--glass-border); 578 | } 579 | 580 | .vehicle-edit-container h3 { 581 | margin-top: 0; 582 | color: var(--accent-red); 583 | text-align: center; 584 | } 585 | 586 | .vehicle-edit-container form { 587 | display: grid; 588 | grid-template-columns: repeat(2, 1fr); 589 | gap: 12px; 590 | } 591 | 592 | .vehicle-edit-container label { 593 | font-weight: 600; 594 | } 595 | 596 | .vehicle-edit-container input[type="text"], 597 | .vehicle-edit-container input[type="number"] { 598 | padding: 8px; 599 | border-radius: 6px; 600 | border: 1.5px solid var(--glass-border); 601 | background-color: var(--glass-bg); 602 | color: var(--text-primary); 603 | font-size: 1rem; 604 | outline: none; 605 | transition: border-color 0.3s ease, box-shadow 0.3s ease; 606 | } 607 | 608 | .vehicle-edit-container input[type="text"]:focus, 609 | .vehicle-edit-container input[type="number"]:focus { 610 | border-color: var(--accent-blue); 611 | box-shadow: 0 0 8px var(--accent-blue); 612 | } 613 | 614 | .form-buttons { 615 | display: flex; 616 | justify-content: space-between; 617 | gap: 10px; 618 | } 619 | 620 | .form-buttons button { 621 | flex: 1; 622 | padding: 10px 0; 623 | border: none; 624 | border-radius: 10px; 625 | font-weight: 700; 626 | font-size: 1rem; 627 | cursor: pointer; 628 | transition: background 0.3s ease; 629 | } 630 | 631 | #saveVehicleBtn { 632 | background: var(--accent-green); 633 | color: white; 634 | } 635 | 636 | #saveVehicleBtn:hover { 637 | background: #3b883dcc; 638 | } 639 | 640 | #deleteVehicleBtn { 641 | background: var(--accent-red); 642 | color: white; 643 | } 644 | 645 | #deleteVehicleBtn:hover { 646 | background: #913434cc; 647 | } 648 | 649 | #cancelEditBtn { 650 | background: var(--accent-orange); 651 | color: white; 652 | } 653 | 654 | #cancelEditBtn:hover { 655 | background: #916527cc; 656 | } 657 | 658 | @keyframes shine { 659 | 0% { transform: translateX(-100%); } 660 | 100% { transform: translateX(100%); } 661 | } 662 | 663 | @keyframes pulse { 664 | 0% { opacity: 1; } 665 | 50% { opacity: 0.2; } 666 | 100% { opacity: 1; } 667 | } 668 | 669 | .pulse { 670 | animation: pulse 1.5s infinite; 671 | } 672 | 673 | 674 | /* ---------------- Mileage Icon ---------------- */ 675 | .mileage-icon { 676 | color: gray; 677 | font-size: 1.2rem; 678 | vertical-align: middle; 679 | margin-right: 6px; 680 | transition: color 0.4s ease; 681 | } 682 | 683 | .mileage-icon.yellow { 684 | color: var(--accent-yellow); 685 | } 686 | 687 | .mileage-icon.red { 688 | color: var(--accent-red); 689 | } 690 | 691 | .mileage-icon.flashing { 692 | animation: pulse 1.5s infinite; 693 | color: var(--accent-red); 694 | } 695 | 696 | 697 | /* ---------------- Confirmation modal ---------------- */ 698 | .custom-confirm-modal { 699 | position: fixed; 700 | top: 0; 701 | left: 0; 702 | width: 100vw; 703 | height: 100vh; 704 | background-color: rgba(0, 0, 0, 0.6); 705 | display: flex; 706 | justify-content: center; 707 | align-items: center; 708 | z-index: 1300; 709 | } 710 | 711 | .custom-confirm-content { 712 | background: var(--glass-bg); 713 | border-radius: 20px; 714 | border: 1px solid var(--glass-border); 715 | padding: 24px 32px; 716 | width: 320px; 717 | box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5); 718 | color: var(--text-primary); 719 | font-family: 'Inter', -apple-system, system-ui, sans-serif; 720 | text-align: center; 721 | } 722 | 723 | .custom-confirm-content p { 724 | font-size: 1.1rem; 725 | margin-bottom: 24px; 726 | } 727 | 728 | .custom-confirm-buttons { 729 | display: flex; 730 | justify-content: space-around; 731 | gap: 20px; 732 | } 733 | 734 | .confirm-ok-btn, 735 | .confirm-cancel-btn { 736 | flex: 1; 737 | padding: 10px 0; 738 | border: none; 739 | border-radius: 12px; 740 | font-weight: 700; 741 | font-size: 1rem; 742 | cursor: pointer; 743 | transition: background 0.3s ease, box-shadow 0.3s ease; 744 | } 745 | 746 | .confirm-ok-btn { 747 | background: var(--accent-green); 748 | color: white; 749 | box-shadow: 0 6px 15px rgba(59, 136, 60, 0.6); 750 | } 751 | 752 | .confirm-ok-btn:hover { 753 | background: #3b883dcc; 754 | box-shadow: 0 8px 20px rgba(59, 136, 60, 0.8); 755 | } 756 | 757 | .confirm-ok-btn:active { 758 | transform: scale(0.98); 759 | box-shadow: 0 4px 10px rgba(59, 136, 60, 0.5); 760 | } 761 | 762 | .confirm-cancel-btn { 763 | background: var(--accent-red); 764 | color: white; 765 | box-shadow: 0 6px 15px rgba(255, 107, 107, 0.6); 766 | } 767 | 768 | .confirm-cancel-btn:hover { 769 | background: #913434cc; 770 | box-shadow: 0 8px 20px rgba(145, 52, 52, 0.8); 771 | } 772 | 773 | .confirm-cancel-btn:active { 774 | transform: scale(0.98); 775 | box-shadow: 0 4px 10px rgba(145, 52, 52, 0.5); 776 | } 777 | --------------------------------------------------------------------------------