223 lines
10 KiB
Rust
223 lines
10 KiB
Rust
use std::collections::HashMap;
|
|
use lazy_static::lazy_static;
|
|
use leptos::prelude::*;
|
|
use crate::locales::Locales;
|
|
|
|
lazy_static! {
|
|
static ref LANGUAGES: HashMap<&'static str, HashMap<&'static str, &'static str>> = {
|
|
let m = HashMap::from([
|
|
("cs", HashMap::from( [
|
|
("Dashboard", "Přehled"),
|
|
("Settings", "Nastavení"),
|
|
("Search...", "Najít..."),
|
|
("Close", "Zavřít"),
|
|
("Save changes", "Uložit změny"),
|
|
("Yes", "Ano"),
|
|
("No", "Ne"),
|
|
("Company info", "Organizace"),
|
|
("Name cannot be empty", "Jméno nesmí být prázdné"),
|
|
("Invalid old password", "Neplatné staré heslo"),
|
|
("Please sign-in to your account", "Přihlaste se prosím k uživatelskému účtu"),
|
|
("Closed", "Zavřeno"),
|
|
("Monday", "Pondělí"),
|
|
("Tuesday", "Úterý"),
|
|
("Wednesday", "Středa"),
|
|
("Thursday", "Čtvrtek"),
|
|
("Friday", "Pátek"),
|
|
("Saturday", "Sobota"),
|
|
("Sunday", "Neděle"),
|
|
("Opening hours", "Otvírací hodiny"),
|
|
("Username", "Uživatel"),
|
|
("Password", "Heslo"),
|
|
("Sign in", "Přihlásit"),
|
|
("Create user", "Vytvořit uživatele"),
|
|
("Delete user", "Smazat uživatele"),
|
|
("Users", "Uživatelé"),
|
|
("Full name", "Celé jméno"),
|
|
("Actions", "Akce"),
|
|
("Edit", "Upravit"),
|
|
("Change password", "Změnit heslo"),
|
|
("Delete", "Smazat"),
|
|
("Properties", "Předměty"),
|
|
("Name", "Jméno"),
|
|
("Description", "Popis"),
|
|
("Price", "Cena"),
|
|
("Edit hours", "Upravit hodiny"),
|
|
("Hours", "Hodiny"),
|
|
("Who is booking", "Kdo rezervuje"),
|
|
("Reservation", "Rezervace"),
|
|
("Booking", "Rezervace"),
|
|
("Enter full name", "Zdejte celé jméno"),
|
|
("Enter e-mail address", "Zadejte e-mailovou adresu"),
|
|
("Phone number", "Telefonní číslo"),
|
|
("Enter phone number", "Zadejte telefonní číslo"),
|
|
("Book", "Rezervovat"),
|
|
("Total price of booking", "Celková cena rezervace"),
|
|
("Date", "Datum"),
|
|
("Note", "Poznámka"),
|
|
("Enter note", "Zadejte poznámku"),
|
|
("New bookings", "Nové rezervace"),
|
|
("Next approved bookings", "Potvrzené rezervace"),
|
|
("Approve", "Potvrdit"),
|
|
("Cancel booking", "Zrušit rezervaci"),
|
|
("Approve booking", "Potvrdit rezervaci"),
|
|
("Reservation saved", "Rezervace byla uložena"),
|
|
("Cancel", "Zrušit"),
|
|
("Approve booking on ", "Potvrdit rezervaci na "),
|
|
(" for ", " pro "),
|
|
("Cancel booking on ", "Zrušit rezervaci na "),
|
|
("Customer: ", "Zákazník: "),
|
|
("Price: ", "Cena: "),
|
|
("Note: ", "Poznámka: "),
|
|
("Overview", "Přehled"),
|
|
("Can't create reservation", "Rezervaci nelze vytvořit"),
|
|
("Enter your full name", "Zadejte své jméno"),
|
|
("Enter valid email address", "Zadejte platný e-mail"),
|
|
("Select at last one time slot", "Zvolte čas rezervace"),
|
|
("Enter your phone number", "Zadejte telefonní číslo"),
|
|
("Your reservation has been successfully saved.", "Vaše rezervace byla úspěšně uložena."),
|
|
("We look forward to seeing you on", "Těšíme se na vaši návštěvu"),
|
|
("Create booking", "Vytvořit rezervaci"),
|
|
("Online booking application for sports facilities and service providers.", "Online rezervační aplikace pro sportovní zařízení a provozovatele služeb."),
|
|
("About", "O aplikaci"),
|
|
("Booking summary", "Všechny rezervace"),
|
|
("Customers", "Zákazníci"),
|
|
("Customer", "Zákazník"),
|
|
("Booking overview", "Rezervace"),
|
|
("Base settings", "Základní nastavení"),
|
|
("Mail settings", "Nastavení e-mailů"),
|
|
("New booking", "Nová rezervace"),
|
|
("New booking - for customer", "Nová rezervace - zákazníkovi"),
|
|
("Booking approved", "Schválení rezervace"),
|
|
("Booking canceled", "Zrušení rezervace"),
|
|
("Subject", "Předmět"),
|
|
("Subject: ", "Předmět: "),
|
|
("Edit mail", "Upravit e-mail"),
|
|
("Year: ", "Rok: "),
|
|
("Month: ", "Měsíc: "),
|
|
("New", "Nová"),
|
|
("Approved", "Potvrzená"),
|
|
("Canceled", "Zrušená"),
|
|
("Booking detail", "Detail rezervace"),
|
|
("State", "Stav"),
|
|
("Date can't be in past", "Datum nesmí být v minulosti"),
|
|
("Enter your username", "Zadejte své uživatelské jméno"),
|
|
("Hours must be in HH:MM - HH:MM format", "Hodiny musí být zadány ve tvaru HH:MM - HH:MM"),
|
|
("Time 'to' must be after time 'from'", "Čas 'do' musí být po čase 'od'"),
|
|
("Edit profile", "Upravit profil"),
|
|
("Get emails", "Dostávat e-maily"),
|
|
("Enter username", "Zadejte uživatelské jméno"),
|
|
("Verify password", "Ověření hesla"),
|
|
("Enter email", "Zadejte e-mail"),
|
|
("Old password", "Staré heslo"),
|
|
("New password", "Nové heslo"),
|
|
("Enter new password", "Zadejte nové heslo"),
|
|
("Passwords doesn't match", "Hesla se neshodují"),
|
|
("Edit company", "Upravit organizaci"),
|
|
("Enter Name", "Zadejte jméno"),
|
|
("Enter Street", "Zadejte ulici"),
|
|
("Enter House number", "Číslo domu"),
|
|
("Enter ZIP code", "Zadejte PSČ"),
|
|
("Enter City", "Zadejte město"),
|
|
("Street", "Ulice"),
|
|
("House number", "Číslo domu"),
|
|
("ZIP code", "PSČ"),
|
|
("City", "Město"),
|
|
("Edit property", "Upravit předmět"),
|
|
("Quarter an hour", "Čtvrthodna"),
|
|
("Half an hour", "Půlhodina"),
|
|
("Hour", "Hodina"),
|
|
("Day", "Den"),
|
|
("Time slot", "Časový slot"),
|
|
("Active", "Aktivní"),
|
|
("Are you sure you want to delete property ", "Opravdu chcete smazat předmět "),
|
|
("Delete property", "Smazat předmět"),
|
|
("Are you sure you want to delete user ", "Opravdu chcete smazat uživatele "),
|
|
("Remember for next time", "Zapamatovat pro příště"),
|
|
("Appearance settings", "Nastavení vzhledu"),
|
|
("Top banner", "Titulní banner"),
|
|
("Banner file", "Soubor banneru"),
|
|
("Upload", "Nahrát"),
|
|
("Edit title", "Upravit titulek"),
|
|
("Edit text", "Upravit text"),
|
|
("Update text", "Upravit text"),
|
|
("Update title", "Upravit titulek"),
|
|
("Are you sure you want to delete banner?", "Opravdu chcete smazat banner?"),
|
|
("Delete banner", "Smazat banner"),
|
|
("Appearance", "Vzhled"),
|
|
("Month bookings", "Rezrvace po měsících"),
|
|
("Year bookings", "Rezervace po letech"),
|
|
("January", "Leden"),
|
|
("February", "Únor"),
|
|
("March", "Březen"),
|
|
("April", "Duben"),
|
|
("May", "Květen"),
|
|
("June", "Červen"),
|
|
("July", "Červenec"),
|
|
("August", "Srpen"),
|
|
("September", "Září"),
|
|
("October", "Říjen"),
|
|
("November", "Listpopad"),
|
|
("December", "Prosinec"),
|
|
("Closing days: ", "Zavírací dny: "),
|
|
("Closing days", "Zavírací dny"),
|
|
("From", "Od"),
|
|
("To", "do"),
|
|
("Delete closing days", "Smazat zavírací dny"),
|
|
("Are you sure you want to delete closing days?", "Opravdu chcete smazat zavírací dny?"),
|
|
("Bad username or password", "Špatné uživatelské jméno nebo heslo"),
|
|
("You can't escalate your privileges", "Nemůžete povýšit práva sami sobě"),
|
|
("Username already exists", "Uživatel již existuje"),
|
|
("You can't delete yourself", "Nemůžete smazat sami sebe"),
|
|
("Are you sure you want to delete closing days from ", "Opravdu chcete smazat zavírací dny od "),
|
|
(" to ", " do ")
|
|
])),
|
|
("sk", HashMap::from( [
|
|
("Dashboard", "Prehlad"),
|
|
("Settings", "Nastavenie"),
|
|
("Search...", "Najsť...")
|
|
]))
|
|
]);
|
|
m
|
|
};
|
|
}
|
|
|
|
pub fn get_locales() -> Vec<Option<String>> {
|
|
#[cfg(not(feature = "ssr"))]
|
|
{
|
|
// Context is not available in event handlers, ask the browser there
|
|
use_context::<Locales>().unwrap_or_else(crate::locales::browser_locales).0
|
|
}
|
|
#[cfg(feature = "ssr")]
|
|
{
|
|
let req = use_context::<leptos_actix::Request>();
|
|
if let Some(r) = req {
|
|
if let Some(al) = r.head().headers.get("accept-language") {
|
|
Locales(al.to_str().unwrap_or("").split(",").map(|l| Some(l.to_string())).collect()).0
|
|
} else {
|
|
vec![]
|
|
}
|
|
} else {
|
|
vec![]
|
|
}
|
|
}
|
|
}
|
|
|
|
pub fn get_dictionary() -> Option<&'static HashMap<&'static str, &'static str>> {
|
|
let locs = get_locales();
|
|
for loc in locs {
|
|
if let Some(key) = loc {
|
|
if let Some(k) = key.split("-").collect::<Vec<_>>().get(0) {
|
|
if *k == "en" {
|
|
return None;
|
|
}
|
|
if !LANGUAGES.contains_key(*k) {
|
|
continue;
|
|
}
|
|
return LANGUAGES.get(*k);
|
|
}
|
|
}
|
|
}
|
|
|
|
None
|
|
} |