36782-vm/includes/i18n.php
Flatlogic Bot 55a70dfb41 ENG v2
2025-12-12 19:50:50 +00:00

380 lines
17 KiB
PHP

<?php
$supported_languages = ['pl', 'en'];
$default_language = 'pl';
$translations = [
'pl' => [
'login_header' => 'Logowanie',
'username' => 'Nazwa użytkownika',
'password' => 'Hasło',
'login_button' => 'Zaloguj',
'login_failed' => 'Logowanie nie powiodło się',
'logout_link' => 'Wyloguj',
'home_link' => 'Strona główna',
'cart_link' => 'Koszyk',
'orders_link' => 'Zamówienia',
'profile_link' => 'Profil',
'products_header' => 'Produkty',
'add_to_cart_button' => 'Dodaj do koszyka',
'product_details_link' => 'Szczegóły produktu',
'price_net' => 'Cena netto',
'price_gross' => 'Cena brutto',
'net' => 'netto',
'gross' => 'brutto',
'unit' => 'jednostka',
'back_to_products_link' => 'Powrót do listy produktów',
'product_name' => 'Nazwa produktu',
'product_description' => 'Opis produktu',
'related_products_header' => 'Produkty powiązane',
'cart_header' => 'Koszyk',
'product' => 'Produkt',
'quantity' => 'Ilość',
'total_price_net' => 'Cena całkowita netto',
'total_price_gross' => 'Cena całkowita brutto',
'empty_cart_message' => 'Koszyk jest pusty.',
'update_quantity_button' => 'Aktualizuj',
'remove_from_cart_button' => 'Usuń',
'checkout_button' => 'Do kasy',
'cart_total_header' => 'Podsumowanie koszyka',
'total_net' => 'Suma netto',
'total_gross' => 'Suma brutto',
'checkout_header' => 'Kasa',
'delivery_address_header' => 'Adres dostawy',
'name' => 'Imię i nazwisko',
'street' => 'Ulica',
'city' => 'Miasto',
'zip_code' => 'Kod pocztowy',
'country' => 'Kraj',
'phone' => 'Telefon',
'payment_method_header' => 'Metoda płatności',
'payment_on_delivery' => 'Płatność przy odbiorze',
'place_order_button' => 'Złóż zamówienie',
'orders_header' => 'Twoje zamówienia',
'order_number' => 'Numer zamówienia',
'order_date' => 'Data zamówienia',
'total_amount' => 'Kwota całkowita',
'status' => 'Status',
'order_details_link' => 'Szczegóły',
'order_details_header' => 'Szczegóły zamówienia',
'order_confirmation_header' => 'Potwierdzenie zamówienia',
'order_confirmation_message' => 'Dziękujemy za złożenie zamówienia. Zostało ono przyjęte do realizacji.',
'profile_header' => 'Twój profil',
'email' => 'Email',
'language_pl' => 'Polski',
'language_en' => 'English',
'currency_pln' => 'PLN',
'currency_eur' => 'EUR',
'status_pending' => 'Oczekujące',
'status_pending_payment' => 'Oczekuje na płatność',
'status_paid' => 'Zapłacone',
'status_in_progress' => 'W realizacji',
'status_shipped' => 'Wysłane',
'status_partially_shipped' => 'Częściowo wysłane',
'status_completed' => 'Zrealizowane',
'status_cancelled' => 'Anulowane',
'payment_bank_transfer' => 'Przelew tradycyjny',
'payment_online' => 'Płatność online (Przelewy24)',
'payment_credit' => 'Kredyt kupiecki',
'order_confirmation_thank_you' => 'Dziękujemy za złożenie zamówienia.',
'order_confirmation_order_number' => 'Numer Twojego zamówienia to',
'order_confirmation_track_status' => 'Możesz śledzić jego status w panelu',
'order_confirmation_my_orders' => 'Moje zamówienia',
'order_confirmation_continue_shopping' => 'Kontynuuj zakupy',
'profile_user_profile' => 'Profil użytkownika',
'profile_error_loading' => 'Wystąpił błąd podczas ładowania danych profilu. Prosimy spróbować ponownie później.',
'profile_welcome' => 'Witaj',
'profile_email_address' => 'Adres e-mail',
'profile_client' => 'Klient',
'profile_password_management' => 'Zarządzanie hasłem',
'profile_feature_in_preparation' => 'Funkcja w przygotowaniu.',
'db_error' => 'Błąd bazy danych: ',
'catalog_title' => 'Katalog produktów',
'no_image_placeholder' => 'Brak zdjęcia',
'quantity_aria' => 'Ilość',
'accessories_and_complementary_products' => 'Akcesoria i produkty uzupełniające',
'footer_text' => 'Wszystkie prawa zastrzeżone.',
'app_name' => 'B2B Commerce',
'app_title' => 'B2B Commerce',
'orders' => 'Zamówienia',
'order_confirmation' => 'Potwierdzenie zamówienia',
'thank_you_for_your_order' => 'Dziękujemy za złożenie zamówienia!',
'your_order_number' => 'Twoje zamówienie o numerze',
'has_been_placed_successfully' => 'zostało pomyślnie złożone.',
'order_details_will_be_sent' => 'Szczegóły zamówienia zostaną wkrótce wysłane na Twój adres e-mail. Możesz również sprawdzić status swojego zamówienia w zakładce',
'continue_shopping' => 'Kontynuuj zakupy',
'menu_catalog' => 'Katalog',
'title_cart' => 'Koszyk',
'menu_orders' => 'Zamówienia',
'menu_profile' => 'Profil',
'menu_logout' => 'Wyloguj',
'header_welcome' => 'Witaj',
'related_suggestions_title' => 'Dodano do koszyka',
'product_added_successfully' => 'Produkt został pomyślnie dodany do koszyka!',
'you_added_to_cart' => 'Dodałeś do koszyka:',
'related_products_recommendation' => 'Polecamy także produkty powiązane:',
'go_to_cart' => 'Przejdź do koszyka',
'back_to_shop' => 'Wróć do sklepu',
'total' => 'Razem',
'update_button' => 'Zaktualizuj',
'remove_button' => 'Usuń',
'total_gross_label' => 'Razem (brutto):',
'proceed_to_checkout' => 'Przejdź do zamówienia',
'db_connection_error' => 'Błąd połączenia z bazą danych: ',
'price_per' => 'Cena za',
'price_per_unit' => 'Cena za j.m.',
'db_error_generic' => 'Błąd bazy danych',
'your_order' => 'Twoje zamówienie',
'delivery_payment_options' => 'Dostawa i płatność',
'delivery_source' => 'Źródło dostawy',
'central_warehouse' => 'Magazyn centralny',
'external_supplier' => 'Dostawca zewnętrzny',
'available_trade_credit' => 'Dostępny kredyt kupiecki',
'order_notes' => 'Uwagi do zamówienia',
'confirm_order' => 'Potwierdź zamówienie',
'unauthorized_order_view' => 'Nie masz uprawnień do przeglądania tego zamówienia.',
'order_not_found_or_unauthorized' => 'Nie znaleziono zamówienia lub nie masz do niego dostępu.',
'order_details_title' => 'Szczegóły zamówienia nr {order_id}',
'order_details_fallback_title' => 'Szczegóły zamówienia',
'back_to_orders' => 'Powrót do listy zamówień',
'summary' => 'Podsumowanie',
'notes' => 'Uwagi',
'order_details' => 'Szczegóły zamówienia',
'image' => 'Zdjęcie',
'unit_price_net' => 'Cena jedn. netto',
'unit_price_gross' => 'Cena jedn. brutto',
'back_to_product_list' => 'Powrót do listy produktów',
'product_thumbnail_alt' => 'Miniatura produktu',
'quantity_label' => 'Ilość',
'btn_add_to_cart' => 'Dodaj do koszyka',
'description_tab' => 'Opis',
'technical_data_tab' => 'Dane techniczne',
'documents_tab' => 'Dokumenty',
'related_products_tab' => 'Produkty powiązane',
'no_technical_data' => 'Brak danych technicznych.',
'no_documents' => 'Brak dokumentów.',
'no_related_products' => 'Brak produktów powiązanych.',
'error_client_id_not_found' => 'Nie znaleziono ID klienta w sesji.',
'error_fetching_orders' => 'Błąd podczas pobierania zamówień.',
'title_orders' => 'Zamówienia',
'order_history' => 'Historia zamówień',
'no_orders_yet' => 'Nie złożyłeś jeszcze żadnych zamówień.',
'btn_view_details' => 'Zobacz szczegóły',
'my_order_items' => 'Moje pozycje zamówień',
'order_id' => 'ID Zamówienia',
'last_updated' => 'Ostatnia aktualizacja',
'action' => 'Akcja',
'no_order_items_found' => 'Nie znaleziono żadnych pozycji zamówień.',
'save' => 'Zapisz',
'login_error' => 'Nieprawidłowy email lub hasło.',
'payment_method' => 'Metoda płatności',
'checkout_title' => 'Zamówienie',
'szt' => 'sztuka',
'mb' => 'metr bieżący',
'm2' => 'metr kwadratowy',
],
'en' => [
'login_header' => 'Login',
'username' => 'Username',
'password' => 'Password',
'login_button' => 'Login',
'login_failed' => 'Login failed',
'logout_link' => 'Logout',
'home_link' => 'Home',
'cart_link' => 'Cart',
'orders_link' => 'Orders',
'profile_link' => 'Profile',
'products_header' => 'Products',
'add_to_cart_button' => 'Add to cart',
'product_details_link' => 'Product details',
'price_net' => 'Net price',
'price_gross' => 'Gross price',
'net' => 'net',
'gross' => 'gross',
'unit' => 'unit',
'back_to_products_link' => 'Back to product list',
'product_name' => 'Product name',
'product_description' => 'Product description',
'related_products_header' => 'Related products',
'cart_header' => 'Cart',
'product' => 'Product',
'quantity' => 'Quantity',
'total_price_net' => 'Total net price',
'total_price_gross' => 'Total gross price',
'empty_cart_message' => 'Your cart is empty.',
'update_quantity_button' => 'Update',
'remove_from_cart_button' => 'Remove',
'checkout_button' => 'Checkout',
'cart_total_header' => 'Cart summary',
'total_net' => 'Total net',
'total_gross' => 'Total gross',
'checkout_header' => 'Checkout',
'delivery_address_header' => 'Delivery address',
'name' => 'Full name',
'street' => 'Street',
'city' => 'City',
'zip_code' => 'Zip code',
'country' => 'Country',
'phone' => 'Phone',
'payment_method_header' => 'Payment method',
'payment_on_delivery' => 'Payment on delivery',
'place_order_button' => 'Place order',
'orders_header' => 'Your orders',
'order_number' => 'Order number',
'order_date' => 'Order date',
'total_amount' => 'Total amount',
'status' => 'Status',
'order_details_link' => 'Details',
'order_details_header' => 'Order details',
'order_confirmation_header' => 'Order confirmation',
'order_confirmation_message' => 'Thank you for your order. It has been accepted for processing.',
'profile_header' => 'Your profile',
'email' => 'Email',
'language_pl' => 'Polski',
'language_en' => 'English',
'currency_pln' => 'PLN',
'currency_eur' => 'EUR',
'status_pending' => 'Pending',
'status_pending_payment' => 'Pending payment',
'status_paid' => 'Paid',
'status_in_progress' => 'In progress',
'status_shipped' => 'Shipped',
'status_partially_shipped' => 'Partially shipped',
'status_completed' => 'Completed',
'status_cancelled' => 'Cancelled',
'payment_bank_transfer' => 'Bank transfer',
'payment_online' => 'Online payment (Przelewy24)',
'payment_credit' => 'Trade credit',
'order_confirmation_thank_you' => 'Thank you for your order.',
'order_confirmation_order_number' => 'Your order number is',
'order_confirmation_track_status' => 'You can track its status in the',
'order_confirmation_my_orders' => 'My orders',
'order_confirmation_continue_shopping' => 'Continue shopping',
'profile_user_profile' => 'User profile',
'profile_error_loading' => 'There was an error loading your profile data. Please try again later.',
'profile_welcome' => 'Welcome',
'profile_email_address' => 'Email address',
'profile_client' => 'Client',
'profile_password_management' => 'Password management',
'profile_feature_in_preparation' => 'Feature in preparation.',
'db_error' => 'Database error: ',
'catalog_title' => 'Product catalog',
'no_image_placeholder' => 'No image',
'quantity_aria' => 'Quantity',
'accessories_and_complementary_products' => 'Accessories and complementary products',
'footer_text' => 'All rights reserved.',
'app_name' => 'B2B Commerce',
'app_title' => 'B2B Commerce',
'orders' => 'Orders',
'order_confirmation' => 'Order confirmation',
'thank_you_for_your_order' => 'Thank you for your order!',
'your_order_number' => 'Your order number',
'has_been_placed_successfully' => 'has been placed successfully.',
'order_details_will_be_sent' => 'Order details will be sent to your email address soon. You can also check your order status in the',
'continue_shopping' => 'Continue shopping',
'menu_catalog' => 'Catalog',
'title_cart' => 'Cart',
'menu_orders' => 'Orders',
'menu_profile' => 'Profile',
'menu_logout' => 'Logout',
'header_welcome' => 'Welcome',
'related_suggestions_title' => 'Added to cart',
'product_added_successfully' => 'Product has been successfully added to the cart!',
'you_added_to_cart' => 'You added to cart:',
'related_products_recommendation' => 'We also recommend related products:',
'go_to_cart' => 'Go to cart',
'back_to_shop' => 'Back to shop',
'total' => 'Total',
'update_button' => 'Update',
'remove_button' => 'Remove',
'total_gross_label' => 'Total (gross):',
'proceed_to_checkout' => 'Proceed to checkout',
'db_connection_error' => 'Database connection error: ',
'price_per' => 'Price per',
'price_per_unit' => 'Price per unit',
'db_error_generic' => 'Database error',
'your_order' => 'Your order',
'delivery_payment_options' => 'Delivery and payment',
'delivery_source' => 'Delivery source',
'central_warehouse' => 'Central warehouse',
'external_supplier' => 'External supplier',
'available_trade_credit' => 'Available trade credit',
'order_notes' => 'Order notes',
'confirm_order' => 'Confirm order',
'unauthorized_order_view' => 'You are not authorized to view this order.',
'order_not_found_or_unauthorized' => 'Order not found or you are not authorized to view it.',
'order_details_title' => 'Order details {order_id}',
'order_details_fallback_title' => 'Order details',
'back_to_orders' => 'Back to orders',
'summary' => 'Summary',
'notes' => 'Notes',
'order_details' => 'Order details',
'image' => 'Image',
'unit_price_net' => 'Unit price net',
'unit_price_gross' => 'Unit price gross',
'back_to_product_list' => 'Back to product list',
'product_thumbnail_alt' => 'Product thumbnail',
'quantity_label' => 'Quantity',
'btn_add_to_cart' => 'Add to cart',
'description_tab' => 'Description',
'technical_data_tab' => 'Technical data',
'documents_tab' => 'Documents',
'related_products_tab' => 'Related products',
'no_technical_data' => 'No technical data available.',
'no_documents' => 'No documents available.',
'no_related_products' => 'No related products available.',
'error_client_id_not_found' => 'Client ID not found in session.',
'error_fetching_orders' => 'Error fetching orders.',
'title_orders' => 'Orders',
'order_history' => 'Order history',
'no_orders_yet' => 'You have no orders yet.',
'btn_view_details' => 'View details',
'my_order_items' => 'My order items',
'order_id' => 'Order ID',
'last_updated' => 'Last updated',
'action' => 'Action',
'no_order_items_found' => 'No order items found.',
'save' => 'Save',
'login_error' => 'Invalid email or password.',
'payment_method' => 'Payment method',
'checkout_title' => 'Checkout',
'szt' => 'piece',
'mb' => 'linear meter',
'm2' => 'square meter',
],
];
function get_lang() {
global $default_language;
return $_SESSION['lang'] ?? $default_language;
}
function set_lang($lang) {
global $supported_languages;
if (in_array($lang, $supported_languages)) {
$_SESSION['lang'] = $lang;
}
}
function t(string $key): string {
global $translations;
$lang = get_lang();
if (isset($translations[$lang][$key])) {
return $translations[$lang][$key];
}
if (isset($translations['pl'][$key])) {
return $translations['pl'][$key];
}
return "[missing:$key]";
}
function t_status($key) {
$payment_methods = ['bank_transfer', 'online', 'credit'];
if (in_array($key, $payment_methods)) {
$translation_key = 'payment_' . $key;
} else {
$translation_key = 'status_' . $key;
}
return t($translation_key);
}