2023-08-18 12:22:23 +02:00
use std ::collections ::HashMap ;
use lazy_static ::lazy_static ;
use leptos ::* ;
2023-09-18 13:10:59 +02:00
use crate ::locales ::Locales ;
2023-08-18 12:22:23 +02:00
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í" ),
2023-08-24 21:58:03 +02:00
( "Search..." , "Najít..." ),
( "Close" , "Zavřít" ),
2023-09-08 11:53:08 +02:00
( "Save changes" , "Uložit změny" ),
2023-12-08 17:02:00 +01:00
( "Yes" , "Ano" ),
( "No" , "Ne" ),
2023-09-08 11:53:08 +02:00
( "Company info" , "Organizace" ),
( "Name cannot be empty" , "Jméno nesmí být prázdné" ),
2023-09-27 11:36:52 +02:00
( "Invalid old password" , "Neplatné staré heslo" ),
( "Please sign-in to your account" , "Přihlaste se prosím k uživatelskému účtu" ),
2023-11-11 16:27:40 +01:00
( "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" ),
2023-12-08 17:02:00 +01:00
( "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" ),
2024-02-01 09:18:00 +01:00
( "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" ),
2024-02-05 12:00:38 +01:00
( "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" ),
2024-02-15 16:46:57 +01:00
( "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" ),
2024-02-16 09:40:44 +01:00
( "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" ),
( "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" ),
2024-02-19 17:39:37 +01:00
( "Are you sure you want to delete user " , "Opravdu chcete smazat uživatele " ),
2024-02-22 21:54:00 +01:00
( "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?" ),
2024-02-23 14:00:31 +01:00
( "Delete banner" , "Smazat banner" ),
2024-02-28 08:49:05 +01:00
( "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" ),
2024-05-26 21:07:09 +02:00
( "Closing days: " , "Zavírací dny: " ),
( "Closing days" , "Zavírací dny" ),
( "From" , "Od" ),
2025-02-08 15:29:16 +01:00
( "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" )
2023-08-18 12:22:23 +02:00
])),
( "sk" , HashMap ::from ( [
( "Dashboard" , "Prehlad" ),
( "Settings" , "Nastavenie" ),
( "Search..." , "Najsť..." )
]))
]);
m
};
}
2024-02-28 08:49:05 +01:00
fn get_locales () -> Vec < Option < String >> {
#[cfg(not(feature = "ssr" ))]
{
use_context ::< Locales > (). unwrap_or ( Locales ( vec! [])). 0
}
#[cfg(feature = "ssr" )]
{
use actix_web ::HttpRequest ;
let req = use_context ::< HttpRequest > ();
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! []
}
}
}
2023-09-15 13:55:01 +02:00
pub fn get_dictionary () -> Option <& 'static HashMap <& 'static str , & 'static str >> {
2024-02-28 08:49:05 +01:00
let locs = get_locales ();
2023-08-18 12:22:23 +02:00
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
}