35591-vm/includes/translations.php
Flatlogic Bot bfa71e661d 2
2025-11-09 09:57:02 +00:00

760 lines
52 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
function get_translations() {
return [
'en' => [
'app_name' => 'Captionista',
'nav_generator' => 'Generator',
'nav_history' => 'History',
'nav_subscription' => 'Subscription',
'nav_login' => 'Login',
'nav_register' => 'Register',
'nav_logout' => 'Logout',
'nav_profile' => 'Profile',
'hero_title' => 'AI-Powered Descriptions for Your Clothing Store.',
'hero_subtitle' => 'Effortlessly create compelling, SEO-friendly product listings in seconds.',
'hero_cta' => 'Get Started for Free',
'how_it_works_title' => 'How It Works',
'step1_title' => 'Upload',
'step1_desc' => 'Upload up to 5 photos of your product.',
'step2_title' => 'Input Details',
'step2_desc' => 'Add key information like material, size, and brand.',
'step3_title' => 'Generate',
'step3_desc' => 'Receive a complete, ready-to-use description.',
'features_title' => 'Features',
'feature1_title' => 'AI-Powered Descriptions',
'feature2_title' => 'Multilingual Support',
'feature3_title' => 'History & Export',
'pricing_title' => 'Pricing',
'pricing_free' => 'Free',
'pricing_paid' => 'Paid',
'pricing_premium' => 'Premium',
'pricing_coming_soon' => 'Coming Soon',
'footer_copyright' => '© 2025 Captionista. All Rights Reserved.',
'generator_form_title' => 'Create Your Description',
'upload_label' => 'Upload Photos (up to 5)',
'state_label' => 'State',
'state_new' => 'New',
'state_used' => 'Used',
'state_visibly_used' => 'Visibly Used',
'length_label' => 'Length (cm)',
'width_chest_label' => 'Chest Width (cm)',
'width_waist_label' => 'Waist Width (cm)',
'width_hips_label' => 'Hips Width (cm)',
'material_label' => 'Material',
'size_label' => 'Size',
'brand_label' => 'Brand/Producer',
'additional_info_label' => 'Additional Info',
'additional_info_placeholder' => 'e.g., small stain on the sleeve, missing button',
'generate_button' => 'Generate Description',
'generated_result' => 'Generated Result',
'output_title' => 'Title',
'output_short_description' => 'Short Description',
'output_description' => 'Description',
'output_measurements' => 'Measurements',
'output_hashtags' => 'Hashtags',
'copy_to_clipboard' => 'Copy',
'approve' => 'Approve',
'error_parsing_ai_response' => 'Error: Could not understand the AI response. Please try again.',
'error_calling_ai_api' => 'Error: Could not connect to the AI service. Please try again later.',
'error_required_fields' => 'Error: Please fill in all required fields (State and Size).',
'register_title' => 'Register',
'create_account' => 'Create Your Account',
'register_subtitle' => 'Join Captionista to start generating descriptions.',
'email' => 'Email',
'password' => 'Password',
'confirm_password' => 'Confirm Password',
'register_button' => 'Register',
'already_have_account' => 'Already have an account?',
'login_link' => 'Login',
'login_title' => 'Login',
'login_heading' => 'Welcome Back!',
'login_subtitle' => 'Log in to access your account.',
'login_button' => 'Login',
'no_account' => "Don't have an account?",
'register_link' => 'Register',
'fill_all_fields' => 'Please fill in all fields.',
'passwords_do_not_match' => 'Passwords do not match.',
'invalid_email' => 'Invalid email format.',
'email_already_registered' => 'This email is already registered.',
'registration_successful' => 'Registration successful! You can now log in.',
'login_now' => 'Login now.',
'invalid_credentials' => 'Invalid email or password.',
'profile_link' => 'Profile',
'profile_heading' => 'Your Profile',
'profile_subtitle' => 'Update your account details.',
'profile_updated_successfully' => 'Profile updated successfully.',
'email_cannot_be_changed' => 'Email cannot be changed.',
'new_password' => 'New Password',
'confirm_new_password' => 'Confirm New Password',
'update_profile_button' => 'Update Profile',
'history_title' => 'Generation History',
'history_empty' => "You haven't generated any descriptions yet.",
'history_generate_now' => 'Generate Your First Description',
'generation_date' => 'Generated on',
'nav_pricing' => 'Pricing',
'nav_faq' => 'FAQ',
'nav_terms' => 'Terms of Use',
'pricing_subtitle' => 'Choose the plan that works for you.',
'monthly' => 'Monthly',
'annually' => 'Annually',
'save_15_percent' => 'Save 15%',
'basic_plan_name' => 'Basic',
'premium_plan_name' => 'Premium',
'basic_plan_limit' => '150 generations/month',
'premium_plan_limit' => 'Unlimited generations',
'feature_150_generations' => '150 generations per month',
'feature_unlimited_generations' => 'Unlimited generations',
'feature_standard_support' => 'Standard email support',
'feature_priority_support' => 'Priority email support',
'feature_history_access' => 'Access to generation history',
'choose_plan' => 'Choose Plan',
'month_short' => 'mo',
'billed_annually_at' => 'Billed annually at',
'pricing_footer_text' => 'You can upgrade, downgrade, or cancel your subscription at any time. No refunds for partial periods.',
'faq_title' => 'Frequently Asked Questions',
'faq_q1_title' => 'How does the subscription work?',
'faq_q1_text' => 'You can choose between a monthly or annual subscription. The annual plan gives you a 15% discount. Your subscription will automatically renew at the end of each billing cycle.',
'faq_q2_title' => 'Can I cancel my subscription?',
'faq_q2_text' => 'Yes, you can cancel your subscription at any time. If you cancel, your subscription will remain active until the end of the current billing period, and it will not be renewed. We do not offer refunds for partial subscription periods.',
'faq_q3_title' => 'Can I change my plan?',
'faq_q3_text' => 'Yes, you can upgrade or downgrade your plan at any time. The changes will take effect in the next billing cycle.',
'faq_q4_title' => 'What happens if I exceed my generation limit on the Basic plan?',
'faq_q4_text' => 'If you reach the 150-generation limit on the Basic plan, you will need to upgrade to the Premium plan to continue generating descriptions within the same month.',
'terms_title' => 'Terms of Use',
'terms_last_updated' => 'Last Updated: November 9, 2025',
'terms_section1_title' => '1. Acceptance of Terms',
'terms_section1_text' => 'By accessing and using our service, you accept and agree to be bound by the terms and provision of this agreement. In addition, when using these particular services, you shall be subject to any posted guidelines or rules applicable to such services.',
'terms_section2_title' => '2. User Accounts',
'terms_section2_text' => 'You are responsible for maintaining the confidentiality of your account and password. You agree to accept responsibility for all activities that occur under your account or password.',
'terms_section3_title' => '3. Subscription and Payment',
'terms_section3_text' => 'All subscriptions are billed in advance on a monthly or annual basis and are non-refundable. Your subscription will automatically renew unless you cancel it.',
'terms_section4_title' => '4. Termination',
'terms_section4_text' => 'We may terminate or suspend your account and bar access to the service immediately, without prior notice or liability, under our sole discretion, for any reason whatsoever and without limitation, including but not limited to a breach of the Terms.',
'terms_section5_title' => '5. Changes to Terms',
'terms_section5_text' => 'We reserve the right, at our sole discretion, to modify or replace these Terms at any time. We will provide at least 30 days notice prior to any new terms taking effect.',
'subscription_success_message' => 'Your subscription has been activated successfully!',
'no_active_subscription' => 'You do not have an active subscription.',
'choose_plan_to_start' => 'Choose a plan to start generating.',
'plan' => 'Plan',
'expires_on' => 'Expires on',
'change_plan' => 'Change Plan',
'subscription_expired_error' => 'Your subscription has expired. Please renew your plan to continue generating.',
'generation_limit_exceeded_error' => 'You have exceeded your monthly generation limit. Please upgrade your plan to continue.',
'login_to_generate_error' => 'Please log in to generate descriptions.',
'admin_panel_title' => 'Admin Panel',
'admin_panel_subtitle' => 'Manage users and application settings.',
'registered_users' => 'Registered Users',
'role' => 'Role',
'subscription_plan' => 'Subscription Plan',
'subscription_expires_at' => 'Subscription Expires',
'registered_on' => 'Registered On',
'no_users_found' => 'No users found.',
],
'pl' => [
'app_name' => 'Captionista',
'nav_generator' => 'Generator',
'nav_history' => 'Historia',
'nav_subscription' => 'Subskrypcja',
'nav_login' => 'Zaloguj się',
'nav_register' => 'Zarejestruj się',
'nav_logout' => 'Wyloguj się',
'nav_profile' => 'Profil',
'hero_title' => 'Opisy do Twojego sklepu odzieżowego wspierane przez AI.',
'hero_subtitle' => 'Twórz atrakcyjne, zoptymalizowane pod SEO opisy produktów w kilka sekund.',
'hero_cta' => 'Zacznij za darmo',
'how_it_works_title' => 'Jak to działa',
'step1_title' => 'Prześlij',
'step1_desc' => 'Prześlij do 5 zdjęć swojego produktu.',
'step2_title' => 'Wprowadź dane',
'step2_desc' => 'Dodaj kluczowe informacje, takie jak materiał, rozmiar i marka.',
'step3_title' => 'Generuj',
'step3_desc' => 'Otrzymaj kompletny, gotowy do użycia opis.',
'features_title' => 'Funkcje',
'feature1_title' => 'Opisy wspierane przez AI',
'feature2_title' => 'Wsparcie wielojęzyczne',
'feature3_title' => 'Historia i eksport',
'pricing_title' => 'Cennik',
'pricing_free' => 'Darmowy',
'pricing_paid' => 'Płatny',
'pricing_premium' => 'Premium',
'pricing_coming_soon' => 'Wkrótce',
'footer_copyright' => '© 2025 Captionista. Wszelkie prawa zastrzeżone.',
'generator_form_title' => 'Stwórz swój opis',
'upload_label' => 'Prześlij zdjęcia (do 5)',
'state_label' => 'Stan',
'state_new' => 'Nowy',
'state_used' => 'Używany',
'state_visibly_used' => 'Widoczne ślady użytkowania',
'length_label' => 'Długość (cm)',
'width_chest_label' => 'Szerokość w klatce piersiowej (cm)',
'width_waist_label' => 'Szerokość w talii (cm)',
'width_hips_label' => 'Szerokość w biodrach (cm)',
'material_label' => 'Materiał',
'size_label' => 'Rozmiar',
'brand_label' => 'Marka/Producent',
'additional_info_label' => 'Dodatkowe informacje',
'additional_info_placeholder' => 'np. mała plama na rękawie, brak guzika',
'generate_button' => 'Generuj opis',
'generated_result' => 'Wygenerowany wynik',
'output_title' => 'Tytuł',
'output_short_description' => 'Krótki opis',
'output_description' => 'Opis',
'output_measurements' => 'Wymiary',
'output_hashtags' => 'Hashtagi',
'copy_to_clipboard' => 'Kopiuj',
'approve' => 'Zatwierdź',
'error_parsing_ai_response' => 'Błąd: Nie można zinterpretować odpowiedzi AI. Proszę spróbować ponownie.',
'error_calling_ai_api' => 'Błąd: Nie można połączyć się z usługą AI. Proszę spróbować później.',
'error_required_fields' => 'Błąd: Proszę wypełnić wszystkie wymagane pola (Stan i Rozmiar).',
'register_title' => 'Rejestracja',
'create_account' => 'Stwórz swoje konto',
'register_subtitle' => 'Dołącz do Captionista, aby zacząć generować opisy.',
'email' => 'Email',
'password' => 'Hasło',
'confirm_password' => 'Potwierdź hasło',
'register_button' => 'Zarejestruj się',
'already_have_account' => 'Masz już konto?',
'login_link' => 'Zaloguj się',
'login_title' => 'Logowanie',
'login_heading' => 'Witaj z powrotem!',
'login_subtitle' => 'Zaloguj się, aby uzyskać dostęp do swojego konta.',
'login_button' => 'Zaloguj się',
'no_account' => 'Nie masz konta?',
'register_link' => 'Zarejestruj się',
'fill_all_fields' => 'Proszę wypełnić wszystkie pola.',
'passwords_do_not_match' => 'Hasła nie są zgodne.',
'invalid_email' => 'Nieprawidłowy format email.',
'email_already_registered' => 'Ten email jest już zarejestrowany.',
'registration_successful' => 'Rejestracja pomyślna! Możesz się teraz zalogować.',
'login_now' => 'Zaloguj się teraz.',
'invalid_credentials' => 'Nieprawidłowy email lub hasło.',
'profile_link' => 'Profil',
'profile_heading' => 'Twój profil',
'profile_subtitle' => 'Zaktualizuj dane swojego konta.',
'profile_updated_successfully' => 'Profil zaktualizowany pomyślnie.',
'email_cannot_be_changed' => 'Email nie może zostać zmieniony.',
'new_password' => 'Nowe hasło',
'confirm_new_password' => 'Potwierdź nowe hasło',
'update_profile_button' => 'Zaktualizuj profil',
'history_title' => 'Historia generacji',
'history_empty' => 'Nie wygenerowałeś jeszcze żadnych opisów.',
'history_generate_now' => 'Wygeneruj swój pierwszy opis',
'generation_date' => 'Wygenerowano',
'nav_pricing' => 'Cennik',
'nav_faq' => 'FAQ',
'nav_terms' => 'Regulamin',
'pricing_subtitle' => 'Wybierz plan, który Ci odpowiada.',
'monthly' => 'Miesięcznie',
'annually' => 'Rocznie',
'save_15_percent' => 'Oszczędź 15%',
'basic_plan_name' => 'Podstawowy',
'premium_plan_name' => 'Premium',
'basic_plan_limit' => '150 generacji/miesiąc',
'premium_plan_limit' => 'Nielimitowane generacje',
'feature_150_generations' => '150 generacji miesięcznie',
'feature_unlimited_generations' => 'Nielimitowane generacje',
'feature_standard_support' => 'Standardowe wsparcie email',
'feature_priority_support' => 'Priorytetowe wsparcie email',
'feature_history_access' => 'Dostęp do historii generacji',
'choose_plan' => 'Wybierz plan',
'month_short' => 'mies',
'billed_annually_at' => 'Płatne rocznie w kwocie',
'pricing_footer_text' => 'Możesz zmieniać, anulować lub ulepszać swoją subskrypcję w dowolnym momencie. Brak zwrotów za częściowe okresy.',
'faq_title' => 'Często zadawane pytania',
'faq_q1_title' => 'Jak działa subskrypcja?',
'faq_q1_text' => 'Możesz wybrać subskrypcję miesięczną lub roczną. Plan roczny daje 15% zniżki. Twoja subskrypcja odnowi się automatycznie na koniec każdego cyklu rozliczeniowego.',
'faq_q2_title' => 'Czy mogę anulować subskrypcję?',
'faq_q2_text' => 'Tak, możesz anulować subskrypcję w dowolnym momencie. Jeśli anulujesz, subskrypcja pozostanie aktywna do końca bieżącego okresu rozliczeniowego i nie zostanie odnowiona. Nie oferujemy zwrotów za częściowe okresy subskrypcji.',
'faq_q3_title' => 'Czy mogę zmienić plan?',
'faq_q3_text' => 'Tak, możesz w dowolnym momencie zmienić plan na wyższy lub niższy. Zmiany wejdą w życie w następnym cyklu rozliczeniowym.',
'faq_q4_title' => 'Co się stanie, jeśli przekroczę limit generacji w planie Podstawowym?',
'faq_q4_text' => 'Jeśli osiągniesz limit 150 generacji w planie Podstawowym, będziesz musiał przejść na plan Premium, aby kontynuować generowanie opisów w tym samym miesiącu.',
'terms_title' => 'Regulamin',
'terms_last_updated' => 'Ostatnia aktualizacja: 9 listopada 2025',
'terms_section1_title' => '1. Akceptacja warunków',
'terms_section1_text' => 'Korzystając z naszej usługi, akceptujesz i zgadzasz się na przestrzeganie warunków niniejszej umowy. Ponadto, korzystając z tych usług, podlegasz wszelkim opublikowanym wytycznym lub zasadom mającym zastosowanie do takich usług.',
'terms_section2_title' => '2. Konta użytkowników',
'terms_section2_text' => 'Jesteś odpowiedzialny za zachowanie poufności swojego konta i hasła. Zgadzasz się przyjąć odpowiedzialność za wszystkie działania, które mają miejsce na Twoim koncie lub pod Twoim hasłem.',
'terms_section3_title' => '3. Subskrypcja i płatności',
'terms_section3_text' => 'Wszystkie subskrypcje są opłacane z góry miesięcznie lub rocznie i nie podlegają zwrotowi. Twoja subskrypcja zostanie automatycznie odnowiona, chyba że ją anulujesz.',
'terms_section4_title' => '4. Zakończenie',
'terms_section4_text' => 'Możemy zamknąć lub zawiesić Twoje konto i zablokować dostęp do usługi natychmiast, bez uprzedniego powiadomienia lub odpowiedzialności, według naszego wyłącznego uznania, z dowolnego powodu i bez ograniczeń, w tym między innymi z powodu naruszenia Warunków.',
'terms_section5_title' => '5. Zmiany w Regulaminie',
'terms_section5_text' => 'Zastrzegamy sobie prawo, według naszego wyłącznego uznania, do modyfikowania lub zastępowania niniejszych Warunków w dowolnym momencie. Powiadomimy o wszelkich nowych warunkach co najmniej 30 dni przed ich wejściem w życie.',
'subscription_success_message' => 'Twoja subskrypcja została aktywowana pomyślnie!',
'no_active_subscription' => 'Nie masz aktywnej subskrypcji.',
'choose_plan_to_start' => 'Wybierz plan, aby rozpocząć generowanie.',
'plan' => 'Plan',
'expires_on' => 'Wygasa',
'change_plan' => 'Zmień plan',
'subscription_expired_error' => 'Twoja subskrypcja wygasła. Odnów plan, aby kontynuować generowanie.',
'generation_limit_exceeded_error' => 'Przekroczyłeś miesięczny limit generacji. Ulepsz swój plan, aby kontynuować.',
'login_to_generate_error' => 'Zaloguj się, aby generować opisy.',
'admin_panel_title' => 'Panel administratora',
'admin_panel_subtitle' => 'Zarządzaj użytkownikami i ustawieniami aplikacji.',
'registered_users' => 'Zarejestrowani użytkownicy',
'role' => 'Rola',
'subscription_plan' => 'Plan subskrypcji',
'subscription_expires_at' => 'Subskrypcja wygasa',
'registered_on' => 'Zarejestrowany',
'no_users_found' => 'Nie znaleziono użytkowników.',
],
'es' => [
'app_name' => 'Captionista',
'nav_generator' => 'Generador',
'nav_history' => 'Historial',
'nav_subscription' => 'Suscripción',
'nav_login' => 'Iniciar sesión',
'nav_register' => 'Registrarse',
'nav_logout' => 'Cerrar sesión',
'nav_profile' => 'Perfil',
'hero_title' => 'Descripciones para tu tienda de ropa impulsadas por IA.',
'hero_subtitle' => 'Crea descripciones de productos atractivas y optimizadas para SEO en segundos.',
'hero_cta' => 'Empieza gratis',
'how_it_works_title' => 'Cómo funciona',
'step1_title' => 'Subir',
'step1_desc' => 'Sube hasta 5 fotos de tu producto.',
'step2_title' => 'Ingresar detalles',
'step2_desc' => 'Añade información clave como material, talla y marca.',
'step3_title' => 'Generar',
'step3_desc' => 'Recibe una descripción completa y lista para usar.',
'features_title' => 'Características',
'feature1_title' => 'Descripciones impulsadas por IA',
'feature2_title' => 'Soporte multilingüe',
'feature3_title' => 'Historial y exportación',
'pricing_title' => 'Precios',
'pricing_free' => 'Gratis',
'pricing_paid' => 'Pagado',
'pricing_premium' => 'Premium',
'pricing_coming_soon' => 'Próximamente',
'footer_copyright' => '© 2025 Captionista. Todos los derechos reservados.',
'generator_form_title' => 'Crea tu descripción',
'upload_label' => 'Subir fotos (hasta 5)',
'state_label' => 'Estado',
'state_new' => 'Nuevo',
'state_used' => 'Usado',
'state_visibly_used' => 'Visiblemente usado',
'length_label' => 'Largo (cm)',
'width_chest_label' => 'Ancho de pecho (cm)',
'width_waist_label' => 'Ancho de cintura (cm)',
'width_hips_label' => 'Ancho de caderas (cm)',
'material_label' => 'Material',
'size_label' => 'Talla',
'brand_label' => 'Marca/Productor',
'additional_info_label' => 'Información adicional',
'additional_info_placeholder' => 'p.ej. pequeña mancha en la manga, falta un botón',
'generate_button' => 'Generar descripción',
'generated_result' => 'Resultado generado',
'output_title' => 'Título',
'output_short_description' => 'Descripción corta',
'output_description' => 'Descripción',
'output_measurements' => 'Medidas',
'output_hashtags' => 'Hashtags',
'copy_to_clipboard' => 'Copiar',
'approve' => 'Aprobar',
'error_parsing_ai_response' => 'Error: No se pudo interpretar la respuesta de la IA. Por favor, inténtalo de nuevo.',
'error_calling_ai_api' => 'Error: No se pudo conectar con el servicio de IA. Por favor, inténtalo más tarde.',
'error_required_fields' => 'Error: Por favor, rellena todos los campos obligatorios (Estado y Talla).',
'register_title' => 'Registrarse',
'create_account' => 'Crea tu cuenta',
'register_subtitle' => 'Únete a Captionista para empezar a generar descripciones.',
'email' => 'Correo electrónico',
'password' => 'Contraseña',
'confirm_password' => 'Confirmar contraseña',
'register_button' => 'Registrarse',
'already_have_account' => '¿Ya tienes una cuenta?',
'login_link' => 'Iniciar sesión',
'login_title' => 'Iniciar sesión',
'login_heading' => '¡Bienvenido de nuevo!',
'login_subtitle' => 'Inicia sesión para acceder a tu cuenta.',
'login_button' => 'Iniciar sesión',
'no_account' => '¿No tienes una cuenta?',
'register_link' => 'Registrarse',
'fill_all_fields' => 'Por favor, rellena todos los campos.',
'passwords_do_not_match' => 'Las contraseñas no coinciden.',
'invalid_email' => 'Formato de correo electrónico no válido.',
'email_already_registered' => 'Este correo electrónico ya está registrado.',
'registration_successful' => '¡Registro exitoso! Ahora puedes iniciar sesión.',
'login_now' => 'Iniciar sesión ahora.',
'invalid_credentials' => 'Correo electrónico o contraseña no válidos.',
'profile_link' => 'Perfil',
'profile_heading' => 'Tu Perfil',
'profile_subtitle' => 'Actualiza los datos de tu cuenta.',
'profile_updated_successfully' => 'Perfil actualizado correctamente.',
'email_cannot_be_changed' => 'El correo electrónico no se puede cambiar.',
'new_password' => 'Nueva contraseña',
'confirm_new_password' => 'Confirmar nueva contraseña',
'update_profile_button' => 'Actualizar perfil',
'history_title' => 'Historial de Generación',
'history_empty' => 'Aún no has generado ninguna descripción.',
'history_generate_now' => 'Genera tu primera descripción',
'generation_date' => 'Generado el',
'nav_pricing' => 'Precios',
'nav_faq' => 'FAQ',
'nav_terms' => 'Términos de Uso',
'pricing_subtitle' => 'Elige el plan que más te convenga.',
'monthly' => 'Mensual',
'annually' => 'Anual',
'save_15_percent' => 'Ahorra 15%',
'basic_plan_name' => 'Básico',
'premium_plan_name' => 'Premium',
'basic_plan_limit' => '150 generaciones/mes',
'premium_plan_limit' => 'Generaciones ilimitadas',
'feature_150_generations' => '150 generaciones por mes',
'feature_unlimited_generations' => 'Generaciones ilimitadas',
'feature_standard_support' => 'Soporte estándar por correo electrónico',
'feature_priority_support' => 'Soporte prioritario por correo electrónico',
'feature_history_access' => 'Acceso al historial de generaciones',
'choose_plan' => 'Elegir Plan',
'month_short' => 'mes',
'billed_annually_at' => 'Facturado anualmente a',
'pricing_footer_text' => 'Puedes mejorar, degradar o cancelar tu suscripción en cualquier momento. No hay reembolsos por períodos parciales.',
'faq_title' => 'Preguntas Frecuentes',
'faq_q1_title' => '¿Cómo funciona la suscripción?',
'faq_q1_text' => 'Puedes elegir entre una suscripción mensual o anual. El plan anual te ofrece un 15% de descuento. Tu suscripción se renovará automáticamente al final de cada ciclo de facturación.',
'faq_q2_title' => '¿Puedo cancelar mi suscripción?',
'faq_q2_text' => 'Sí, puedes cancelar tu suscripción en cualquier momento. Si cancelas, tu suscripción permanecerá activa hasta el final del período de facturación actual y no se renovará. No ofrecemos reembolsos por períodos de suscripción parciales.',
'faq_q3_title' => '¿Puedo cambiar mi plan?',
'faq_q3_text' => 'Sí, puedes mejorar o degradar tu plan en cualquier momento. Los cambios entrarán en vigor en el próximo ciclo de facturación.',
'faq_q4_title' => '¿Qué pasa si excedo mi límite de generaciones en el plan Básico?',
'faq_q4_text' => 'Si alcanzas el límite de 150 generaciones en el plan Básico, deberás actualizar al plan Premium para continuar generando descripciones en el mismo mes.',
'terms_title' => 'Términos de Uso',
'terms_last_updated' => 'Última actualización: 9 de noviembre de 2025',
'terms_section1_title' => '1. Aceptación de los Términos',
'terms_section1_text' => 'Al acceder y utilizar nuestro servicio, aceptas y te comprometes a estar sujeto a los términos y disposiciones de este acuerdo. Además, al utilizar estos servicios particulares, estarás sujeto a cualquier guía o regla publicada aplicable a dichos servicios.',
'terms_section2_title' => '2. Cuentas de Usuario',
'terms_section2_text' => 'Eres responsable de mantener la confidencialidad de tu cuenta y contraseña. Aceptas la responsabilidad de todas las actividades que ocurran bajo tu cuenta o contraseña.',
'terms_section3_title' => '3. Suscripción y Pago',
'terms_section3_text' => 'Todas las suscripciones se facturan por adelantado de forma mensual o anual y no son reembolsables. Tu suscripción se renovará automáticamente a menos que la canceles.',
'terms_section4_title' => '4. Terminación',
'terms_section4_text' => 'Podemos rescindir o suspender tu cuenta y prohibir el acceso al servicio de inmediato, sin previo aviso ni responsabilidad, a nuestra entera discreción, por cualquier motivo y sin limitación, incluido, entre otros, el incumplimiento de los Términos.',
'terms_section5_title' => '5. Cambios en los Términos',
'terms_section5_text' => 'Nos reservamos el derecho, a nuestra entera discreción, de modificar o reemplazar estos Términos en cualquier momento. Proporcionaremos un aviso de al menos 30 días antes de que los nuevos términos entren en vigor.',
'subscription_success_message' => '¡Tu suscripción ha sido activada con éxito!',
'no_active_subscription' => 'No tienes una suscripción activa.',
'choose_plan_to_start' => 'Elige un plan para empezar a generar.',
'plan' => 'Plan',
'expires_on' => 'Expira el',
'change_plan' => 'Cambiar de plan',
'subscription_expired_error' => 'Tu suscripción ha expirado. Renueva tu plan para seguir generando.',
'generation_limit_exceeded_error' => 'Has excedido tu límite de generación mensual. Actualiza tu plan para continuar.',
'login_to_generate_error' => 'Inicia sesión para generar descripciones.',
'admin_panel_title' => 'Panel de administración',
'admin_panel_subtitle' => 'Gestionar usuarios y configuración de la aplicación.',
'registered_users' => 'Usuarios registrados',
'role' => 'Rol',
'subscription_plan' => 'Plan de suscripción',
'subscription_expires_at' => 'La suscripción expira',
'registered_on' => 'Registrado el',
'no_users_found' => 'No se encontraron usuarios.',
],
'fr' => [
'app_name' => 'Captionista',
'nav_generator' => 'Générateur',
'nav_history' => 'Historique',
'nav_subscription' => 'Abonnement',
'nav_login' => 'Connexion',
'nav_register' => "S'inscrire",
'nav_logout' => 'Déconnexion',
'nav_profile' => 'Profil',
'hero_title' => 'Descriptions pour votre boutique de vêtements optimisées par l´IA.',
'hero_subtitle' => 'Créez sans effort des fiches produits attrayantes et optimisées pour le SEO en quelques secondes.',
'hero_cta' => 'Commencez gratuitement',
'how_it_works_title' => 'Comment ça marche',
'step1_title' => 'Télécharger',
'step1_desc' => 'Téléchargez jusqu´à 5 photos de votre produit.',
'step2_title' => 'Saisir les détails',
'step2_desc' => 'Ajoutez des informations clés comme le matériau, la taille et la marque.',
'step3_title' => 'Générer',
'step3_desc' => 'Recevez une description complète et prête à l´emploi.',
'features_title' => 'Fonctionnalités',
'feature1_title' => 'Descriptions par l´IA',
'feature2_title' => 'Support multilingue',
'feature3_title' => 'Historique et exportation',
'pricing_title' => 'Tarifs',
'pricing_free' => 'Gratuit',
'pricing_paid' => 'Payant',
'pricing_premium' => 'Premium',
'pricing_coming_soon' => 'Bientôt disponible',
'footer_copyright' => '© 2025 Captionista. Tous droits réservés.',
'generator_form_title' => 'Créez votre description',
'upload_label' => 'Télécharger des photos (jusqu´à 5)',
'state_label' => 'État',
'state_new' => 'Neuf',
'state_used' => 'D´occasion',
'state_visibly_used' => 'Visiblement utilisé',
'length_label' => 'Longueur (cm)',
'width_chest_label' => 'Largeur de poitrine (cm)',
'width_waist_label' => 'Largeur de taille (cm)',
'width_hips_label' => 'Largeur de hanches (cm)',
'material_label' => 'Matériau',
'size_label' => 'Taille',
'brand_label' => 'Marque/Producteur',
'additional_info_label' => 'Informations supplémentaires',
'additional_info_placeholder' => 'ex. petite tache sur la manche, bouton manquant',
'generate_button' => 'Générer la description',
'generated_result' => 'Résultat généré',
'output_title' => 'Titre',
'output_short_description' => 'Description courte',
'output_description' => 'Description',
'output_measurements' => 'Mesures',
'output_hashtags' => 'Hashtags',
'copy_to_clipboard' => 'Copier',
'approve' => 'Approuver',
'error_parsing_ai_response' => 'Erreur : Impossible d´interpréter la réponse de l´IA. Veuillez réessayer.',
'error_calling_ai_api' => 'Erreur : Impossible de se connecter au service d´IA. Veuillez réessayer plus tard.',
'error_required_fields' => 'Erreur : Veuillez remplir tous les champs obligatoires (État et Taille).',
'register_title' => "S'inscrire",
'create_account' => 'Créez votre compte',
'register_subtitle' => 'Rejoignez Captionista pour commencer à générer des descriptions.',
'email' => 'Email',
'password' => 'Mot de passe',
'confirm_password' => 'Confirmez le mot de passe',
'register_button' => "S'inscrire",
'already_have_account' => 'Vous avez déjà un compte ?',
'login_link' => 'Connexion',
'login_title' => 'Connexion',
'login_heading' => 'Content de vous revoir !',
'login_subtitle' => 'Connectez-vous pour accéder à votre compte.',
'login_button' => 'Connexion',
'no_account' => "Vous n'avez pas de compte ?",
'register_link' => "S'inscrire",
'fill_all_fields' => 'Veuillez remplir tous les champs.',
'passwords_do_not_match' => 'Les mots de passe ne correspondent pas.',
'invalid_email' => "Format d'email invalide.",
'email_already_registered' => 'Cet email est déjà enregistré.',
'registration_successful' => 'Inscription réussie ! Vous pouvez maintenant vous connecter.',
'login_now' => 'Connectez-vous maintenant.',
'invalid_credentials' => 'Email ou mot de passe invalide.',
'profile_link' => 'Profil',
'profile_heading' => 'Votre profil',
'profile_subtitle' => 'Mettez à jour les détails de votre compte.',
'profile_updated_successfully' => 'Profil mis à jour avec succès.',
'email_cannot_be_changed' => "L'email ne peut pas être modifié.",
'new_password' => 'Nouveau mot de passe',
'confirm_new_password' => 'Confirmer le nouveau mot de passe',
'update_profile_button' => 'Mettre à jour le profil',
'history_title' => 'Historique des générations',
'history_empty' => "Vous n'a encore généré aucune description.",
'history_generate_now' => 'Générez votre première description',
'generation_date' => 'Généré le',
'nav_pricing' => 'Tarifs',
'nav_faq' => 'FAQ',
'nav_terms' => "Conditions d'utilisation",
'pricing_subtitle' => 'Choisissez le plan qui vous convient.',
'monthly' => 'Mensuel',
'annually' => 'Annuel',
'save_15_percent' => 'Économisez 15%',
'basic_plan_name' => 'Basique',
'premium_plan_name' => 'Premium',
'basic_plan_limit' => '150 générations/mois',
'premium_plan_limit' => 'Générations illimitées',
'feature_150_generations' => '150 générations par mois',
'feature_unlimited_generations' => 'Générations illimitées',
'feature_standard_support' => 'Support par email standard',
'feature_priority_support' => 'Support par email prioritaire',
'feature_history_access' => "Accès à l'historique des générations",
'choose_plan' => 'Choisir le plan',
'month_short' => 'mois',
'billed_annually_at' => 'Facturé annuellement à',
'pricing_footer_text' => 'Vous pouvez mettre à niveau, rétrograder ou annuler votre abonnement à tout moment. Aucun remboursement pour les périodes partielles.',
'faq_title' => 'Foire Aux Questions',
'faq_q1_title' => "Comment fonctionne l'abonnement ?",
'faq_q1_text' => 'Vous pouvez choisir entre un abonnement mensuel ou annuel. Le plan annuel vous offre une réduction de 15%. Votre abonnement se renouvellera automatiquement à la fin de chaque cycle de facturation.',
'faq_q2_title' => 'Puis-je annuler mon abonnement ?',
'faq_q2_text' => "Oui, vous pouvez annuler votre abonnement à tout moment. Si vous annulez, votre abonnement restera actif jusqu'à la fin de la période de facturation en cours et ne sera pas renouvelé. Nous n'offrons pas de remboursement pour les périodes d'abonnement partielles.",
'faq_q3_title' => 'Puis-je changer de plan ?',
'faq_q3_text' => 'Oui, vous pouvez mettre à niveau ou rétrograder votre plan à tout moment. Les modifications prendront effet lors du prochain cycle de facturation.',
'faq_q4_title' => 'Que se passe-t-il si je dépasse ma limite de générations avec le plan Basique ?',
'faq_q4_text' => 'Si vous atteignez la limite de 150 générations avec le plan Basique, vous devrez passer au plan Premium pour continuer à générer des descriptions au cours du même mois.',
'terms_title' => "Conditions d'utilisation",
'terms_last_updated' => 'Dernière mise à jour : 9 novembre 2025',
'terms_section1_title' => '1. Acceptation des conditions',
'terms_section1_text' => "En accédant à notre service et en l'utilisant, vous acceptez d'être lié par les termes et dispositions de cet accord. De plus, en utilisant ces services particuliers, vous serez soumis à toutes les directives ou règles publiées applicables à ces services.",
'terms_section2_title' => "2. Comptes d'utilisateurs",
'terms_section2_text' => 'Vous êtes responsable du maintien de la confidentialité de votre compte et de votre mot de passe. Vous acceptez d'assumer la responsabilité de toutes les activités qui se déroulent sous votre compte ou votre mot de passe.',
'terms_section3_title' => '3. Abonnement et paiement',
'terms_section3_text' => "Tous les abonnements sont facturés à l'avance sur une base mensuelle ou annuelle et ne sont pas remboursables. Votre abonnement sera automatiquement renouvelé, sauf si vous l'annulez.",
'terms_section4_title' => '4. Résiliation',
'terms_section4_text' => "Nous pouvons résilier ou suspendre votre compte et interdire l'accès au service immédiatement, sans préavis ni responsabilité, à notre seule discrétion, pour quelque raison que ce soit et sans limitation, y compris, mais sans s'y limiter, une violation des Conditions.",
'terms_section5_title' => '5. Modifications des conditions',
'terms_section5_text' => "Nous nous réservons le droit, à notre seule discrétion, de modifier ou de remplacer ces Conditions à tout moment. Nous fournirons un préavis d'au moins 30 jours avant l'entrée en vigueur de nouvelles conditions.",
'subscription_success_message' => 'Votre abonnement a été activé avec succès !',
'no_active_subscription' => "Vous n'avez pas d'abonnement actif.",
'choose_plan_to_start' => 'Choisissez un plan pour commencer à générer.',
'plan' => 'Plan',
'expires_on' => 'Expire le',
'change_plan' => 'Changer de plan',
'subscription_expired_error' => 'Votre abonnement a expiré. Veuillez renouveler votre plan pour continuer à générer.',
'generation_limit_exceeded_error' => 'Vous avez dépassé votre limite de génération mensuelle. Veuillez mettre à niveau votre plan pour continuer.',
'login_to_generate_error' => 'Veuillez vous connecter pour générer des descriptions.',
'admin_panel_title' => "Panneau d'administration",
'admin_panel_subtitle' => "Gérer les utilisateurs et les paramètres de l'application.",
'registered_users' => 'Utilisateurs enregistrés',
'role' => 'Rôle',
'subscription_plan' => "Plan d'abonnement",
'subscription_expires_at' => "L'abonnement expire",
'registered_on' => 'Inscrit le',
'no_users_found' => 'Aucun utilisateur trouvé.',
],
'de' => [
'app_name' => 'Captionista',
'nav_generator' => 'Generator',
'nav_history' => 'Verlauf',
'nav_subscription' => 'Abonnement',
'nav_login' => 'Anmelden',
'nav_register' => 'Registrieren',
'nav_logout' => 'Abmelden',
'nav_profile' => 'Profil',
'hero_title' => 'KI-gestützte Beschreibungen für Ihren Bekleidungsladen.',
'hero_subtitle' => 'Erstellen Sie mühelos überzeugende, SEO-freundliche Produktbeschreibungen in Sekunden.',
'hero_cta' => 'Kostenlos starten',
'how_it_works_title' => 'Wie es funktioniert',
'step1_title' => 'Hochladen',
'step1_desc' => 'Laden Sie bis zu 5 Fotos Ihres Produkts hoch.',
'step2_title' => 'Details eingeben',
'step2_desc' => 'Fügen Sie wichtige Informationen wie Material, Größe und Marke hinzu.',
'step3_title' => 'Generieren',
'step3_desc' => 'Erhalten Sie eine vollständige, gebrauchsfertige Beschreibung.',
'features_title' => 'Funktionen',
'feature1_title' => 'KI-gestützte Beschreibungen',
'feature2_title' => 'Mehrsprachige Unterstützung',
'feature3_title' => 'Verlauf & Export',
'pricing_title' => 'Preise',
'pricing_free' => 'Kostenlos',
'pricing_paid' => 'Bezahlt',
'pricing_premium' => 'Premium',
'pricing_coming_soon' => 'Demnächst verfügbar',
'footer_copyright' => '© 2025 Captionista. Alle Rechte vorbehalten.',
'generator_form_title' => 'Erstellen Sie Ihre Beschreibung',
'upload_label' => 'Fotos hochladen (bis zu 5)',
'state_label' => 'Zustand',
'state_new' => 'Neu',
'state_used' => 'Gebraucht',
'state_visibly_used' => 'Sichtlich gebraucht',
'length_label' => 'Länge (cm)',
'width_chest_label' => 'Brustweite (cm)',
'width_waist_label' => 'Taillenweite (cm)',
'width_hips_label' => 'Hüftweite (cm)',
'material_label' => 'Material',
'size_label' => 'Größe',
'brand_label' => 'Marke/Hersteller',
'additional_info_label' => 'Zusätzliche Informationen',
'additional_info_placeholder' => 'z.B. kleiner Fleck am Ärmel, fehlender Knopf',
'generate_button' => 'Beschreibung generieren',
'generated_result' => 'Generiertes Ergebnis',
'output_title' => 'Titel',
'output_short_description' => 'Kurzbeschreibung',
'output_description' => 'Beschreibung',
'output_measurements' => 'Maße',
'output_hashtags' => 'Hashtags',
'copy_to_clipboard' => 'Kopieren',
'approve' => 'Genehmigen',
'error_parsing_ai_response' => 'Fehler: Die KI-Antwort konnte nicht interpretiert werden. Bitte versuchen Sie es erneut.',
'error_calling_ai_api' => 'Fehler: Der KI-Dienst konnte nicht erreicht werden. Bitte versuchen Sie es später erneut.',
'error_required_fields' => 'Fehler: Bitte füllen Sie alle Pflichtfelder aus (Zustand und Größe).',
'register_title' => 'Registrieren',
'create_account' => 'Erstellen Sie Ihr Konto',
'register_subtitle' => 'Treten Sie Captionista bei, um mit dem Generieren von Beschreibungen zu beginnen.',
'email' => 'E-Mail',
'password' => 'Passwort',
'confirm_password' => 'Passwort bestätigen',
'register_button' => 'Registrieren',
'already_have_account' => 'Haben Sie bereits ein Konto?',
'login_link' => 'Anmelden',
'login_title' => 'Anmelden',
'login_heading' => 'Willkommen zurück!',
'login_subtitle' => 'Melden Sie sich an, um auf Ihr Konto zuzugreifen.',
'login_button' => 'Anmelden',
'no_account' => 'Haben Sie kein Konto?',
'register_link' => 'Registrieren',
'fill_all_fields' => 'Bitte füllen Sie alle Felder aus.',
'passwords_do_not_match' => 'Die Passwörter stimmen nicht überein.',
'invalid_email' => 'Ungültiges E-Mail-Format.',
'email_already_registered' => 'Diese E-Mail ist bereits registriert.',
'registration_successful' => 'Registrierung erfolgreich! Sie können sich jetzt anmelden.',
'login_now' => 'Jetzt anmelden.',
'invalid_credentials' => 'Ungültige E-Mail oder ungültiges Passwort.',
'profile_link' => 'Profil',
'profile_heading' => 'Ihr Profil',
'profile_subtitle' => 'Aktualisieren Sie Ihre Kontodaten.',
'profile_updated_successfully' => 'Profil erfolgreich aktualisiert.',
'email_cannot_be_changed' => 'E-Mail kann nicht geändert werden.',
'new_password' => 'Neues Passwort',
'confirm_new_password' => 'Neues Passwort bestätigen',
'update_profile_button' => 'Profil aktualisieren',
'history_title' => 'Generierungsverlauf',
'history_empty' => 'Sie haben noch keine Beschreibungen generiert.',
'history_generate_now' => 'Erstellen Sie Ihre erste Beschreibung',
'generation_date' => 'Erstellt am',
'nav_pricing' => 'Preise',
'nav_faq' => 'FAQ',
'nav_terms' => 'Nutzungsbedingungen',
'pricing_subtitle' => 'Wählen Sie den Plan, der für Sie am besten geeignet ist.',
'monthly' => 'Monatlich',
'annually' => 'Jährlich',
'save_15_percent' => '15% sparen',
'basic_plan_name' => 'Basis',
'premium_plan_name' => 'Premium',
'basic_plan_limit' => '150 Generierungen/Monat',
'premium_plan_limit' => 'Unbegrenzte Generierungen',
'feature_150_generations' => '150 Generierungen pro Monat',
'feature_unlimited_generations' => 'Unbegrenzte Generierungen',
'feature_standard_support' => 'Standard-E-Mail-Support',
'feature_priority_support' => 'Prioritäts-E-Mail-Support',
'feature_history_access' => 'Zugriff auf den Generierungsverlauf',
'choose_plan' => 'Plan wählen',
'month_short' => 'Monat',
'billed_annually_at' => 'Wird jährlich abgerechnet mit',
'pricing_footer_text' => 'Sie können Ihr Abonnement jederzeit upgraden, downgraden oder kündigen. Keine Rückerstattung für Teilzeiträume.',
'faq_title' => 'Häufig gestellte Fragen',
'faq_q1_title' => 'Wie funktioniert das Abonnement?',
'faq_q1_text' => 'Sie können zwischen einem monatlichen oder jährlichen Abonnement wählen. Mit dem Jahresplan erhalten Sie 15% Rabatt. Ihr Abonnement verlängert sich automatisch am Ende jedes Abrechnungszeitraums.',
'faq_q2_title' => 'Kann ich mein Abonnement kündigen?',
'faq_q2_text' => 'Ja, Sie können Ihr Abonnement jederzeit kündigen. Wenn Sie kündigen, bleibt Ihr Abonnement bis zum Ende des aktuellen Abrechnungszeitraums aktiv und wird nicht verlängert. Wir bieten keine Rückerstattungen für Teil-Abonnementzeiträume an.',
'faq_q3_title' => 'Kann ich meinen Plan ändern?',
'faq_q3_text' => 'Ja, Sie können Ihren Plan jederzeit upgraden oder downgraden. Die Änderungen werden im nächsten Abrechnungszyklus wirksam.',
'faq_q4_title' => 'Was passiert, wenn ich mein Generierungslimit im Basis-Plan überschreite?',
'faq_q4_text' => 'Wenn Sie das Limit von 150 Generierungen im Basis-Plan erreichen, müssen Sie auf den Premium-Plan upgraden, um im selben Monat weiterhin Beschreibungen zu generieren.',
'terms_title' => 'Nutzungsbedingungen',
'terms_last_updated' => 'Zuletzt aktualisiert: 9. November 2025',
'terms_section1_title' => '1. Annahme der Bedingungen',
'terms_section1_text' => 'Durch den Zugriff auf und die Nutzung unseres Dienstes akzeptieren Sie die Bedingungen dieser Vereinbarung und stimmen diesen zu. Darüber hinaus unterliegen Sie bei der Nutzung dieser speziellen Dienste allen veröffentlichten Richtlinien oder Regeln, die für solche Dienste gelten.',
'terms_section2_title' => '2. Benutzerkonten',
'terms_section2_text' => 'Sie sind für die Wahrung der Vertraulichkeit Ihres Kontos und Passworts verantwortlich. Sie erklären sich damit einverstanden, die Verantwortung für alle Aktivitäten zu übernehmen, die unter Ihrem Konto oder Passwort stattfinden.',
'terms_section3_title' => '3. Abonnement und Zahlung',
'terms_section3_text' => 'Alle Abonnements werden im Voraus auf monatlicher oder jährlicher Basis abgerechnet und sind nicht erstattungsfähig. Ihr Abonnement verlängert sich automatisch, es sei denn, Sie kündigen es.',
'terms_section4_title' => '4. Kündigung',
'terms_section4_text' => 'Wir können Ihr Konto kündigen oder sperren und den Zugang zum Dienst sofort, ohne vorherige Ankündigung oder Haftung, nach unserem alleinigen Ermessen, aus irgendeinem Grund und ohne Einschränkung, einschließlich, aber nicht beschränkt auf einen Verstoß gegen die Bedingungen, sperren.',
'terms_section5_title' => '5. Änderungen der Bedingungen',
'terms_section5_text' => 'Wir behalten uns das Recht vor, diese Bedingungen nach unserem alleinigen Ermessen jederzeit zu ändern oder zu ersetzen. Wir werden mindestens 30 Tage vor dem Inkrafttreten neuer Bedingungen eine entsprechende Mitteilung machen.',
'subscription_success_message' => 'Ihr Abonnement wurde erfolgreich aktiviert!',
'no_active_subscription' => 'Sie haben kein aktives Abonnement.',
'choose_plan_to_start' => 'Wählen Sie einen Plan, um mit dem Generieren zu beginnen.',
'plan' => 'Plan',
'expires_on' => 'Läuft ab am',
'change_plan' => 'Plan ändern',
'subscription_expired_error' => 'Ihr Abonnement ist abgelaufen. Bitte erneuern Sie Ihren Plan, um weiterhin zu generieren.',
'generation_limit_exceeded_error' => 'Sie haben Ihr monatliches Generierungslimit überschritten. Bitte aktualisieren Sie Ihren Plan, um fortzufahren.',
'login_to_generate_error' => 'Bitte melden Sie sich an, um Beschreibungen zu generieren.',
'admin_panel_title' => 'Administrationsbereich',
'admin_panel_subtitle' => 'Benutzer und Anwendungseinstellungen verwalten.',
'registered_users' => 'Registrierte Benutzer',
'role' => 'Rolle',
'subscription_plan' => 'Abonnementplan',
'subscription_expires_at' => 'Abonnement läuft ab',
'registered_on' => 'Registriert am',
'no_users_found' => 'Keine Benutzer gefunden.',
],
];
}
function t($key, $lang = null) {
global $current_lang;
if ($lang === null) {
$lang = $current_lang;
}
$translations = get_translations();
return $translations[$lang][$key] ?? $key;
}