Initial commit: Masina-Dock Vehicle Management System
This commit is contained in:
commit
ae923e2c41
4999 changed files with 1607266 additions and 0 deletions
296
frontend/static/js/translations.js
Normal file
296
frontend/static/js/translations.js
Normal file
|
|
@ -0,0 +1,296 @@
|
|||
const translations = {
|
||||
en: {
|
||||
dashboard: "Dashboard",
|
||||
overview: "Overview",
|
||||
service_records: "Service Records",
|
||||
repairs: "Repairs",
|
||||
fuel: "Fuel",
|
||||
taxes: "Taxes",
|
||||
notes: "Notes",
|
||||
reminders: "Reminders",
|
||||
settings: "Settings",
|
||||
logout: "Logout",
|
||||
toggle_theme: "Toggle Theme",
|
||||
your_garage: "Your Garage",
|
||||
add_vehicle: "Add Vehicle",
|
||||
add_fuel_record: "Add Fuel Record",
|
||||
add_service_record: "Add Service Record",
|
||||
add_repair: "Add Repair",
|
||||
add_tax_record: "Add Tax Record",
|
||||
add_note: "Add Note",
|
||||
add_reminder: "Add Reminder",
|
||||
export_csv: "Export CSV",
|
||||
export_all_data: "Export All Data",
|
||||
back_to_vehicle: "Back to Vehicle",
|
||||
date: "Date",
|
||||
odometer: "Odometer",
|
||||
description: "Description",
|
||||
category: "Category",
|
||||
cost: "Cost",
|
||||
notes: "Notes",
|
||||
attachment: "Attachment",
|
||||
download: "Download",
|
||||
fuel_amount: "Fuel Amount",
|
||||
distance: "Distance",
|
||||
economy: "Economy",
|
||||
total_fuel_cost: "Total Fuel Cost",
|
||||
average_fuel_economy: "Average Fuel Economy",
|
||||
recurring: "Recurring",
|
||||
type: "Type",
|
||||
amount: "Amount",
|
||||
save: "Save All Changes",
|
||||
cancel: "Cancel",
|
||||
edit: "Edit",
|
||||
delete: "Delete",
|
||||
add_record: "Add Record",
|
||||
update: "Update",
|
||||
create_backup: "Create Backup",
|
||||
restore_backup: "Restore Backup",
|
||||
language: "Language",
|
||||
select_language: "Select Language",
|
||||
save_language: "Save Language",
|
||||
measurement_system: "Measurement System",
|
||||
currency: "Currency",
|
||||
user_management: "User Management",
|
||||
change_password: "Change Password",
|
||||
current_password: "Current Password",
|
||||
new_password: "New Password",
|
||||
confirm_password: "Confirm New Password",
|
||||
year: "Year",
|
||||
make: "Make",
|
||||
model: "Model",
|
||||
vin: "VIN",
|
||||
license_plate: "Registration Number",
|
||||
vehicle_photo: "Vehicle Photo",
|
||||
edit_vehicle: "Edit Vehicle",
|
||||
delete_vehicle: "Delete Vehicle",
|
||||
last_odometer_reading: "Last Odometer Reading",
|
||||
total_distance_traveled: "Total Distance Travelled",
|
||||
total_cost: "Total Cost",
|
||||
fuel_cost: "Fuel Cost",
|
||||
service_cost: "Service Cost",
|
||||
repairs_cost: "Repairs Cost",
|
||||
taxes_cost: "Taxes Cost",
|
||||
upgrades_cost: "Upgrades Cost",
|
||||
recent_service_records: "Recent Service Records",
|
||||
recent_fuel_records: "Recent Fuel Records",
|
||||
active_reminders: "Active Reminders",
|
||||
no_active_reminders: "No active reminders",
|
||||
urgency: "Urgency",
|
||||
due_date: "Due Date",
|
||||
due_odometer: "Due Odometer",
|
||||
registration: "Registration",
|
||||
license: "Licence",
|
||||
property_tax: "Road Tax",
|
||||
insurance: "Insurance",
|
||||
inspection: "MOT",
|
||||
other: "Other",
|
||||
maintenance: "Maintenance",
|
||||
repair: "Repair",
|
||||
upgrade: "Upgrade",
|
||||
tax: "Tax",
|
||||
note: "Note",
|
||||
monthly: "Monthly",
|
||||
quarterly: "Quarterly",
|
||||
yearly: "Yearly",
|
||||
metric: "Metric (km, litres)",
|
||||
imperial: "Imperial (miles, gallons)",
|
||||
us_dollar: "US Dollar (USD)",
|
||||
british_pound: "British Pound (GBP)",
|
||||
romanian_leu: "Romanian Leu (RON)",
|
||||
euro: "Euro (EUR)",
|
||||
supported_files: "Supported: PDF, Images, Text, Word, Excel",
|
||||
no_file_selected: "No file selected",
|
||||
upload_failed: "Upload failed",
|
||||
save_successful: "Saved successfully",
|
||||
delete_confirmation: "Are you sure you want to delete this?",
|
||||
title: "Title",
|
||||
content: "Content",
|
||||
optional: "Optional",
|
||||
mileage: "Mileage",
|
||||
litres: "Litres",
|
||||
gallons: "Gallons",
|
||||
petrol: "Petrol",
|
||||
diesel: "Diesel",
|
||||
backup_restore_title: "Backup & Restore",
|
||||
backup_restore_desc: "Create a complete backup of all your data or restore from a previous backup.",
|
||||
units_currency: "Units & Currency",
|
||||
manage_account: "Manage your account settings and password.",
|
||||
app_info: "Application Info",
|
||||
version: "Version",
|
||||
database: "Database",
|
||||
current_user: "Current User",
|
||||
save_units: "Save Settings"
|
||||
},
|
||||
ro: {
|
||||
dashboard: "Tablou de bord",
|
||||
overview: "Prezentare generala",
|
||||
service_records: "Inregistrari service",
|
||||
repairs: "Reparatii",
|
||||
fuel: "Combustibil",
|
||||
taxes: "Taxe",
|
||||
notes: "Notite",
|
||||
reminders: "Memento-uri",
|
||||
settings: "Setari",
|
||||
logout: "Deconectare",
|
||||
toggle_theme: "Schimba tema",
|
||||
your_garage: "Garajul tau",
|
||||
add_vehicle: "Adauga vehicul",
|
||||
add_fuel_record: "Adauga alimentare",
|
||||
add_service_record: "Adauga service",
|
||||
add_repair: "Adauga reparatie",
|
||||
add_tax_record: "Adauga taxa",
|
||||
add_note: "Adauga notita",
|
||||
add_reminder: "Adauga memento",
|
||||
export_csv: "Exporta CSV",
|
||||
export_all_data: "Exporta toate datele",
|
||||
back_to_vehicle: "Inapoi la vehicul",
|
||||
date: "Data",
|
||||
odometer: "Kilometraj",
|
||||
description: "Descriere",
|
||||
category: "Categorie",
|
||||
cost: "Cost",
|
||||
notes: "Notite",
|
||||
attachment: "Atasament",
|
||||
download: "Descarca",
|
||||
fuel_amount: "Cantitate combustibil",
|
||||
distance: "Distanta",
|
||||
economy: "Consum",
|
||||
total_fuel_cost: "Cost total combustibil",
|
||||
average_fuel_economy: "Consum mediu",
|
||||
recurring: "Recurent",
|
||||
type: "Tip",
|
||||
amount: "Suma",
|
||||
save: "Salveaza toate modificarile",
|
||||
cancel: "Anuleaza",
|
||||
edit: "Editeaza",
|
||||
delete: "Sterge",
|
||||
add_record: "Adauga inregistrare",
|
||||
update: "Actualizeaza",
|
||||
create_backup: "Creeaza backup",
|
||||
restore_backup: "Restaureaza backup",
|
||||
language: "Limba",
|
||||
select_language: "Selecteaza limba",
|
||||
save_language: "Salveaza limba",
|
||||
measurement_system: "Sistem de masura",
|
||||
currency: "Moneda",
|
||||
user_management: "Gestionare utilizator",
|
||||
change_password: "Schimba parola",
|
||||
current_password: "Parola curenta",
|
||||
new_password: "Parola noua",
|
||||
confirm_password: "Confirma parola noua",
|
||||
year: "An",
|
||||
make: "Marca",
|
||||
model: "Model",
|
||||
vin: "VIN",
|
||||
license_plate: "Numar inmatriculare",
|
||||
vehicle_photo: "Fotografie vehicul",
|
||||
edit_vehicle: "Editeaza vehicul",
|
||||
delete_vehicle: "Sterge vehicul",
|
||||
last_odometer_reading: "Ultima citire kilometraj",
|
||||
total_distance_traveled: "Distanta totala parcursa",
|
||||
total_cost: "Cost total",
|
||||
fuel_cost: "Cost combustibil",
|
||||
service_cost: "Cost service",
|
||||
repairs_cost: "Cost reparatii",
|
||||
taxes_cost: "Cost taxe",
|
||||
upgrades_cost: "Cost imbunatatiri",
|
||||
recent_service_records: "Inregistrari service recente",
|
||||
recent_fuel_records: "Alimentari recente",
|
||||
active_reminders: "Memento-uri active",
|
||||
no_active_reminders: "Niciun memento activ",
|
||||
urgency: "Urgenta",
|
||||
due_date: "Data scadenta",
|
||||
due_odometer: "Kilometraj scadent",
|
||||
registration: "Inmatriculare",
|
||||
license: "Licenta",
|
||||
property_tax: "Taxa proprietate",
|
||||
insurance: "Asigurare",
|
||||
inspection: "Inspectie tehnica",
|
||||
other: "Altele",
|
||||
maintenance: "Intretinere",
|
||||
repair: "Reparatie",
|
||||
upgrade: "Imbunatatire",
|
||||
tax: "Taxa",
|
||||
note: "Notita",
|
||||
monthly: "Lunar",
|
||||
quarterly: "Trimestrial",
|
||||
yearly: "Anual",
|
||||
metric: "Metric (km, litri)",
|
||||
imperial: "Imperial (mile, galoane)",
|
||||
us_dollar: "Dolar american (USD)",
|
||||
british_pound: "Lira sterlina (GBP)",
|
||||
romanian_leu: "Leu romanesc (RON)",
|
||||
euro: "Euro (EUR)",
|
||||
supported_files: "Suportat: PDF, Imagini, Text, Word, Excel",
|
||||
no_file_selected: "Niciun fisier selectat",
|
||||
upload_failed: "Incarcare esuata",
|
||||
save_successful: "Salvat cu succes",
|
||||
delete_confirmation: "Sigur doriti sa stergeti?",
|
||||
title: "Titlu",
|
||||
content: "Continut",
|
||||
optional: "Optional",
|
||||
mileage: "Kilometraj",
|
||||
litres: "Litri",
|
||||
gallons: "Galoane",
|
||||
petrol: "Benzina",
|
||||
diesel: "Motorina",
|
||||
backup_restore_title: "Backup & Restaurare",
|
||||
backup_restore_desc: "Creaza un backup complet al datelor tale sau restaureaza dintr-un backup anterior.",
|
||||
units_currency: "Unitati & Moneda",
|
||||
manage_account: "Gestioneaza setarile contului si parola.",
|
||||
app_info: "Informatii aplicatie",
|
||||
version: "Versiune",
|
||||
database: "Baza de date",
|
||||
current_user: "Utilizator curent",
|
||||
save_units: "Salveaza setari"
|
||||
}
|
||||
};
|
||||
|
||||
function getTranslation(key, lang = null) {
|
||||
if (!lang) {
|
||||
const settings = JSON.parse(localStorage.getItem('userSettings') || '{"language":"en"}');
|
||||
lang = settings.language || 'en';
|
||||
}
|
||||
return translations[lang]?.[key] || translations['en'][key] || key;
|
||||
}
|
||||
|
||||
function translatePage() {
|
||||
const settings = JSON.parse(localStorage.getItem('userSettings') || '{"language":"en"}');
|
||||
const lang = settings.language || 'en';
|
||||
|
||||
document.querySelectorAll('[data-translate]').forEach(element => {
|
||||
const key = element.getAttribute('data-translate');
|
||||
const translation = getTranslation(key, lang);
|
||||
|
||||
if (element.tagName === 'INPUT' && (element.type === 'button' || element.type === 'submit')) {
|
||||
element.value = translation;
|
||||
} else if (element.tagName === 'INPUT' || element.tagName === 'TEXTAREA') {
|
||||
element.placeholder = translation;
|
||||
} else if (element.tagName === 'OPTION') {
|
||||
element.textContent = translation;
|
||||
} else {
|
||||
element.textContent = translation;
|
||||
}
|
||||
});
|
||||
|
||||
document.querySelectorAll('label[data-translate]').forEach(label => {
|
||||
const key = label.getAttribute('data-translate');
|
||||
const translation = getTranslation(key, lang);
|
||||
|
||||
const checkbox = label.querySelector('input[type="checkbox"]');
|
||||
if (checkbox) {
|
||||
label.childNodes.forEach(node => {
|
||||
if (node.nodeType === 3) {
|
||||
node.textContent = translation;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
setTimeout(() => {
|
||||
translatePage();
|
||||
}, 100);
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue