@php use App\Helpers\SeoHelper; use App\Helpers\CachedData; use App\Helpers\ServiceTranslationHelper; $locale = app()->getLocale(); $localeBase = strtolower((string) Str::of((string) $locale)->before('_')->before('-')); // Helper function to generate localized routes (English has no prefix) $localizedRoute = function($routeName, $params = []) use ($locale) { return SeoHelper::localizedRoute($routeName, $params, $locale); }; $localizedPath = function (string $path) use ($locale) { return SeoHelper::marketUrl($path, $locale); }; $languageHref = function (string $targetLocale) { $path = parse_url(url()->current(), PHP_URL_PATH) ?: '/'; $segments = $path === '/' ? [] : explode('/', trim($path, '/')); $localeSegments = array_merge(config('markets.public_prefixes', ['us', 'pt', 'br', 'es', 'fr']), ['en']); if (!empty($segments[0]) && in_array(strtolower($segments[0]), $localeSegments, true)) { array_shift($segments); } $pathWithoutLocale = implode('/', $segments); $localizedUrl = SeoHelper::buildLocalizedUrlFromPath($pathWithoutLocale, $targetLocale); if ($localizedUrl !== null) { return $localizedUrl; } $fallbackPath = $pathWithoutLocale === '' ? '' : '/' . $pathWithoutLocale; return $targetLocale === 'en' ? url($fallbackPath ?: '/') : url('/' . $targetLocale . $fallbackPath); }; $navLabel = static function (string $key, string $fallback): string { $translated = __($key); return $translated === $key ? $fallback : $translated; }; $serviceGroups = config('nav.service_groups', []); $serviceNavTranslations = [ 'en' => [ 'groups' => ['Growth & Optimization' => 'Growth & Optimisation'], 'items' => ['website-speed-optimization' => 'Website Speed Optimisation', 'checkout-optimization' => 'Checkout Optimisation', 'product-page-optimization' => 'Product Page Optimisation', 'conversion-rate-optimization' => 'Conversion Rate Optimisation', 'growth-optimization' => 'Growth & Optimisation', 'ux-optimization' => 'UX Optimisation', 'sales-funnel-optimization' => 'Sales Funnel Optimisation'], ], 'pt' => [ 'groups' => ['Web Development' => 'Desenvolvimento Web', 'Ecommerce' => 'Ecommerce', 'Performance Marketing' => 'Marketing de Performance', 'Branding & Creative' => 'Marca e Criatividade', 'Social Media' => 'Redes Sociais', 'Growth & Optimization' => 'Crescimento e Otimização'], 'items' => ['website-development' => 'Desenvolvimento de Sites', 'wordpress-development' => 'Desenvolvimento WordPress', 'woocommerce-development' => 'Desenvolvimento WooCommerce', 'shopify-development' => 'Desenvolvimento Shopify', 'landing-page-development' => 'Páginas de Destino', 'custom-web-development' => 'Desenvolvimento Web à Medida', 'website-redesign' => 'Redesign de Site', 'website-maintenance' => 'Manutenção de Site', 'website-speed-optimization' => 'Otimização de Velocidade', 'managed-hosting' => 'Alojamento Gerido', 'ecommerce-solutions' => 'Soluções Ecommerce', 'ecommerce-development' => 'Desenvolvimento Ecommerce', 'checkout-optimization' => 'Otimização de Checkout', 'product-page-optimization' => 'Otimização de Páginas de Produto', 'conversion-rate-optimization' => 'Otimização de Conversão', 'cart-recovery-strategy' => 'Recuperação de Carrinho', 'marketplace-integrations' => 'Integrações Marketplace', 'performance-marketing' => 'Marketing de Performance', 'paid-traffic' => 'Tráfego Pago', 'google-ads-agency' => 'Agência Google Ads', 'meta-ads-agency' => 'Agência Meta Ads', 'tiktok-ads-agency' => 'Agência TikTok Ads', 'seo-agency' => 'Agência SEO', 'local-seo' => 'SEO Local', 'technical-seo' => 'SEO Técnico', 'analytics-and-tracking' => 'Analítica e Medição', 'lead-generation-systems' => 'Sistemas de Geração de Contactos', 'branding-creative' => 'Marca e Criatividade', 'brand-strategy' => 'Estratégia de Marca', 'naming-services' => 'Naming', 'visual-identity' => 'Identidade Visual', 'graphic-design-services' => 'Design Gráfico', 'packaging-design' => 'Design de Embalagem', 'advertising-creatives' => 'Criativos Publicitários', 'print-design' => 'Design para Impressão', 'restaurant-branding' => 'Marca para Restaurantes', 'pos-materials' => 'Materiais de Ponto de Venda', 'social-media' => 'Redes Sociais', 'social-media-management' => 'Gestão de Redes Sociais', 'instagram-growth' => 'Crescimento no Instagram', 'content-strategy' => 'Estratégia de Conteúdo', 'content-creation' => 'Criação de Conteúdo', 'community-management' => 'Gestão de Comunidade', 'linkedin-positioning' => 'Posicionamento no LinkedIn', 'reels-strategy' => 'Estratégia de Reels', 'ugc-systems' => 'Sistemas UGC', 'growth-optimization' => 'Crescimento e Otimização', 'cro-services' => 'Serviços CRO', 'ux-optimization' => 'Otimização UX', 'crm-integrations' => 'Integrações CRM', 'email-marketing' => 'Marketing por Email', 'automation-systems' => 'Sistemas de Automação', 'retention-systems' => 'Sistemas de Retenção', 'sales-funnel-optimization' => 'Otimização de Funil de Vendas', 'booking-systems' => 'Sistemas de Marcação', 'reservation-systems' => 'Sistemas de Reservas'], ], 'br' => [ 'groups' => ['Web Development' => 'Desenvolvimento Web', 'Ecommerce' => 'Ecommerce', 'Performance Marketing' => 'Marketing de Performance', 'Branding & Creative' => 'Marca e Criatividade', 'Social Media' => 'Redes Sociais', 'Growth & Optimization' => 'Crescimento e Otimização'], 'items' => ['website-development' => 'Criação de Sites', 'wordpress-development' => 'Desenvolvimento WordPress', 'woocommerce-development' => 'Desenvolvimento WooCommerce', 'shopify-development' => 'Desenvolvimento Shopify', 'landing-page-development' => 'Páginas de Destino', 'custom-web-development' => 'Desenvolvimento Web Sob Medida', 'website-redesign' => 'Redesign de Site', 'website-maintenance' => 'Manutenção de Site', 'website-speed-optimization' => 'Otimização de Velocidade', 'managed-hosting' => 'Hospedagem Gerenciada', 'ecommerce-solutions' => 'Soluções Ecommerce', 'ecommerce-development' => 'Desenvolvimento Ecommerce', 'checkout-optimization' => 'Otimização de Checkout', 'product-page-optimization' => 'Otimização de Página de Produto', 'conversion-rate-optimization' => 'Otimização de Conversão', 'cart-recovery-strategy' => 'Recuperação de Carrinho', 'marketplace-integrations' => 'Integrações Marketplace', 'performance-marketing' => 'Marketing de Performance', 'paid-traffic' => 'Tráfego Pago', 'google-ads-agency' => 'Agência Google Ads', 'meta-ads-agency' => 'Agência Meta Ads', 'tiktok-ads-agency' => 'Agência TikTok Ads', 'seo-agency' => 'Agência SEO', 'local-seo' => 'SEO Local', 'technical-seo' => 'SEO Técnico', 'analytics-and-tracking' => 'Analítica e Medição', 'lead-generation-systems' => 'Sistemas de Geração de Contatos', 'branding-creative' => 'Marca e Criatividade', 'brand-strategy' => 'Estratégia de Marca', 'naming-services' => 'Naming', 'visual-identity' => 'Identidade Visual', 'graphic-design-services' => 'Design Gráfico', 'packaging-design' => 'Design de Embalagem', 'advertising-creatives' => 'Criativos Publicitários', 'print-design' => 'Design Impresso', 'restaurant-branding' => 'Marca para Restaurantes', 'pos-materials' => 'Materiais de PDV', 'social-media' => 'Redes Sociais', 'social-media-management' => 'Gestão de Redes Sociais', 'instagram-growth' => 'Crescimento no Instagram', 'content-strategy' => 'Estratégia de Conteúdo', 'content-creation' => 'Criação de Conteúdo', 'community-management' => 'Gestão de Comunidade', 'linkedin-positioning' => 'Posicionamento no LinkedIn', 'reels-strategy' => 'Estratégia de Reels', 'ugc-systems' => 'Sistemas UGC', 'growth-optimization' => 'Crescimento e Otimização', 'cro-services' => 'Serviços CRO', 'ux-optimization' => 'Otimização UX', 'crm-integrations' => 'Integrações CRM', 'email-marketing' => 'Marketing por E-mail', 'automation-systems' => 'Sistemas de Automação', 'retention-systems' => 'Sistemas de Retenção', 'sales-funnel-optimization' => 'Otimização de Funil de Vendas', 'booking-systems' => 'Sistemas de Agendamento', 'reservation-systems' => 'Sistemas de Reserva'], ], 'es' => [ 'groups' => ['Web Development' => 'Desarrollo Web', 'Ecommerce' => 'Ecommerce', 'Performance Marketing' => 'Marketing de Performance', 'Branding & Creative' => 'Marca y Creatividad', 'Social Media' => 'Redes Sociales', 'Growth & Optimization' => 'Crecimiento y Optimización'], 'items' => ['website-development' => 'Desarrollo de Sitios Web', 'wordpress-development' => 'Desarrollo WordPress', 'woocommerce-development' => 'Desarrollo WooCommerce', 'shopify-development' => 'Desarrollo Shopify', 'landing-page-development' => 'Páginas de Destino', 'custom-web-development' => 'Desarrollo Web a Medida', 'website-redesign' => 'Rediseño Web', 'website-maintenance' => 'Mantenimiento Web', 'website-speed-optimization' => 'Optimización de Velocidad', 'managed-hosting' => 'Hosting Gestionado', 'ecommerce-solutions' => 'Soluciones Ecommerce', 'ecommerce-development' => 'Desarrollo Ecommerce', 'checkout-optimization' => 'Optimización de Checkout', 'product-page-optimization' => 'Optimización de Páginas de Producto', 'conversion-rate-optimization' => 'Optimización de Conversión', 'cart-recovery-strategy' => 'Recuperación de Carrito', 'marketplace-integrations' => 'Integraciones Marketplace', 'performance-marketing' => 'Marketing de Performance', 'paid-traffic' => 'Tráfico Pago', 'google-ads-agency' => 'Agencia Google Ads', 'meta-ads-agency' => 'Agencia Meta Ads', 'tiktok-ads-agency' => 'Agencia TikTok Ads', 'seo-agency' => 'Agencia SEO', 'local-seo' => 'SEO Local', 'technical-seo' => 'SEO Técnico', 'analytics-and-tracking' => 'Analítica y Medición', 'lead-generation-systems' => 'Sistemas de Generación de Contactos', 'branding-creative' => 'Marca y Creatividad', 'brand-strategy' => 'Estrategia de Marca', 'naming-services' => 'Naming', 'visual-identity' => 'Identidad Visual', 'graphic-design-services' => 'Diseño Gráfico', 'packaging-design' => 'Diseño de Envases', 'advertising-creatives' => 'Creatividades Publicitarias', 'print-design' => 'Diseño Impreso', 'restaurant-branding' => 'Marca para Restaurantes', 'pos-materials' => 'Materiales de Punto de Venta', 'social-media' => 'Redes Sociales', 'social-media-management' => 'Gestión de Redes Sociales', 'instagram-growth' => 'Crecimiento en Instagram', 'content-strategy' => 'Estrategia de Contenido', 'content-creation' => 'Creación de Contenido', 'community-management' => 'Gestión de Comunidad', 'linkedin-positioning' => 'Posicionamiento en LinkedIn', 'reels-strategy' => 'Estrategia de Reels', 'ugc-systems' => 'Sistemas UGC', 'growth-optimization' => 'Crecimiento y Optimización', 'cro-services' => 'Servicios CRO', 'ux-optimization' => 'Optimización UX', 'crm-integrations' => 'Integraciones CRM', 'email-marketing' => 'Marketing por Correo Electrónico', 'automation-systems' => 'Sistemas de Automatización', 'retention-systems' => 'Sistemas de Retención', 'sales-funnel-optimization' => 'Optimización de Embudo de Ventas', 'booking-systems' => 'Sistemas de Reservas', 'reservation-systems' => 'Sistemas de Reservación'], ], 'fr' => [ 'groups' => ['Web Development' => 'Développement Web', 'Ecommerce' => 'Ecommerce', 'Performance Marketing' => 'Marketing de Performance', 'Branding & Creative' => 'Marque et Création', 'Social Media' => 'Réseaux Sociaux', 'Growth & Optimization' => 'Croissance et Optimisation'], 'items' => ['website-development' => 'Développement de Sites Web', 'wordpress-development' => 'Développement WordPress', 'woocommerce-development' => 'Développement WooCommerce', 'shopify-development' => 'Développement Shopify', 'landing-page-development' => 'Pages de Destination', 'custom-web-development' => 'Développement Web Sur Mesure', 'website-redesign' => 'Refonte de Site Web', 'website-maintenance' => 'Maintenance de Site Web', 'website-speed-optimization' => 'Optimisation de Vitesse', 'managed-hosting' => 'Hébergement Géré', 'ecommerce-solutions' => 'Solutions Ecommerce', 'ecommerce-development' => 'Développement Ecommerce', 'checkout-optimization' => 'Optimisation du Checkout', 'product-page-optimization' => 'Optimisation de Pages Produit', 'conversion-rate-optimization' => 'Optimisation de Conversion', 'cart-recovery-strategy' => 'Récupération de Panier', 'marketplace-integrations' => 'Intégrations Marketplace', 'performance-marketing' => 'Marketing de Performance', 'paid-traffic' => 'Trafic Payant', 'google-ads-agency' => 'Agence Google Ads', 'meta-ads-agency' => 'Agence Meta Ads', 'tiktok-ads-agency' => 'Agence TikTok Ads', 'seo-agency' => 'Agence SEO', 'local-seo' => 'SEO Local', 'technical-seo' => 'SEO Technique', 'analytics-and-tracking' => 'Analyse et Mesure', 'lead-generation-systems' => 'Systèmes de Génération de Contacts', 'branding-creative' => 'Marque et Création', 'brand-strategy' => 'Stratégie de Marque', 'naming-services' => 'Naming', 'visual-identity' => 'Identité Visuelle', 'graphic-design-services' => 'Design Graphique', 'packaging-design' => 'Design d’Emballage', 'advertising-creatives' => 'Créatifs Publicitaires', 'print-design' => 'Design Print', 'restaurant-branding' => 'Marque pour Restaurants', 'pos-materials' => 'Supports Point de Vente', 'social-media' => 'Réseaux Sociaux', 'social-media-management' => 'Gestion des Réseaux Sociaux', 'instagram-growth' => 'Croissance Instagram', 'content-strategy' => 'Stratégie de Contenu', 'content-creation' => 'Création de Contenu', 'community-management' => 'Gestion de Communauté', 'linkedin-positioning' => 'Positionnement LinkedIn', 'reels-strategy' => 'Stratégie Reels', 'ugc-systems' => 'Systèmes UGC', 'growth-optimization' => 'Croissance et Optimisation', 'cro-services' => 'Services CRO', 'ux-optimization' => 'Optimisation UX', 'crm-integrations' => 'Intégrations CRM', 'email-marketing' => 'Marketing par E-mail', 'automation-systems' => 'Systèmes d’Automatisation', 'retention-systems' => 'Systèmes de Rétention', 'sales-funnel-optimization' => 'Optimisation du Tunnel de Vente', 'booking-systems' => 'Systèmes de Réservation', 'reservation-systems' => 'Systèmes de Réservation'], ], 'de' => [ 'groups' => ['Web Development' => 'Webentwicklung', 'Ecommerce' => 'Ecommerce', 'Performance Marketing' => 'Performance-Marketing', 'Branding & Creative' => 'Branding und Kreation', 'Social Media' => 'Social Media', 'Growth & Optimization' => 'Wachstum und Optimierung'], 'items' => ['website-development' => 'Website-Entwicklung', 'wordpress-development' => 'WordPress-Entwicklung', 'woocommerce-development' => 'WooCommerce-Entwicklung', 'shopify-development' => 'Shopify-Entwicklung', 'landing-page-development' => 'Landing Pages', 'custom-web-development' => 'Individuelle Webentwicklung', 'website-redesign' => 'Website-Redesign', 'website-maintenance' => 'Website-Wartung', 'website-speed-optimization' => 'Speed-Optimierung', 'managed-hosting' => 'Managed Hosting', 'ecommerce-solutions' => 'Ecommerce-Lösungen', 'ecommerce-development' => 'Ecommerce-Entwicklung', 'checkout-optimization' => 'Checkout-Optimierung', 'product-page-optimization' => 'Produktseiten-Optimierung', 'conversion-rate-optimization' => 'Conversion-Optimierung', 'cart-recovery-strategy' => 'Warenkorb-Rückgewinnung', 'marketplace-integrations' => 'Marketplace-Integrationen', 'performance-marketing' => 'Performance-Marketing', 'paid-traffic' => 'Paid Traffic', 'google-ads-agency' => 'Google Ads Agentur', 'meta-ads-agency' => 'Meta Ads Agentur', 'tiktok-ads-agency' => 'TikTok Ads Agentur', 'seo-agency' => 'SEO-Agentur', 'local-seo' => 'Local SEO', 'technical-seo' => 'Technisches SEO', 'analytics-and-tracking' => 'Analytics und Tracking', 'lead-generation-systems' => 'Leadgenerierungssysteme', 'branding-creative' => 'Branding und Kreation', 'brand-strategy' => 'Markenstrategie', 'naming-services' => 'Naming', 'visual-identity' => 'Visuelle Identität', 'graphic-design-services' => 'Grafikdesign', 'packaging-design' => 'Packaging Design', 'advertising-creatives' => 'Werbe-Creatives', 'print-design' => 'Printdesign', 'restaurant-branding' => 'Restaurant-Branding', 'pos-materials' => 'POS-Materialien', 'social-media' => 'Social Media', 'social-media-management' => 'Social-Media-Management', 'instagram-growth' => 'Instagram-Wachstum', 'content-strategy' => 'Content-Strategie', 'content-creation' => 'Content-Erstellung', 'community-management' => 'Community-Management', 'linkedin-positioning' => 'LinkedIn-Positionierung', 'reels-strategy' => 'Reels-Strategie', 'ugc-systems' => 'UGC-Systeme', 'growth-optimization' => 'Wachstum und Optimierung', 'cro-services' => 'CRO-Services', 'ux-optimization' => 'UX-Optimierung', 'crm-integrations' => 'CRM-Integrationen', 'email-marketing' => 'E-Mail-Marketing', 'automation-systems' => 'Automatisierungssysteme', 'retention-systems' => 'Retention-Systeme', 'sales-funnel-optimization' => 'Sales-Funnel-Optimierung', 'booking-systems' => 'Buchungssysteme', 'reservation-systems' => 'Reservierungssysteme'], ], 'it' => [ 'groups' => ['Web Development' => 'Sviluppo Web', 'Ecommerce' => 'Ecommerce', 'Performance Marketing' => 'Performance Marketing', 'Branding & Creative' => 'Branding e Creatività', 'Social Media' => 'Social Media', 'Growth & Optimization' => 'Crescita e Ottimizzazione'], 'items' => ['website-development' => 'Sviluppo Siti Web', 'wordpress-development' => 'Sviluppo WordPress', 'woocommerce-development' => 'Sviluppo WooCommerce', 'shopify-development' => 'Sviluppo Shopify', 'landing-page-development' => 'Landing Page', 'custom-web-development' => 'Sviluppo Web su Misura', 'website-redesign' => 'Redesign Sito Web', 'website-maintenance' => 'Manutenzione Sito Web', 'website-speed-optimization' => 'Ottimizzazione Velocità', 'managed-hosting' => 'Hosting Gestito', 'ecommerce-solutions' => 'Soluzioni Ecommerce', 'ecommerce-development' => 'Sviluppo Ecommerce', 'checkout-optimization' => 'Ottimizzazione Checkout', 'product-page-optimization' => 'Ottimizzazione Pagine Prodotto', 'conversion-rate-optimization' => 'Ottimizzazione Conversione', 'cart-recovery-strategy' => 'Recupero Carrello', 'marketplace-integrations' => 'Integrazioni Marketplace', 'performance-marketing' => 'Performance Marketing', 'paid-traffic' => 'Traffico a Pagamento', 'google-ads-agency' => 'Agenzia Google Ads', 'meta-ads-agency' => 'Agenzia Meta Ads', 'tiktok-ads-agency' => 'Agenzia TikTok Ads', 'seo-agency' => 'Agenzia SEO', 'local-seo' => 'SEO Locale', 'technical-seo' => 'SEO Tecnico', 'analytics-and-tracking' => 'Analítica e Medição', 'lead-generation-systems' => 'Sistemi di Lead Generation', 'branding-creative' => 'Branding e Creatività', 'brand-strategy' => 'Strategia di Marca', 'naming-services' => 'Naming', 'visual-identity' => 'Identità Visiva', 'graphic-design-services' => 'Design Grafico', 'packaging-design' => 'Packaging Design', 'advertising-creatives' => 'Creatività Pubblicitarie', 'print-design' => 'Design per Stampa', 'restaurant-branding' => 'Branding per Ristoranti', 'pos-materials' => 'Materiali POS', 'social-media' => 'Social Media', 'social-media-management' => 'Gestione Social Media', 'instagram-growth' => 'Crescita Instagram', 'content-strategy' => 'Strategia Contenuti', 'content-creation' => 'Creazione Contenuti', 'community-management' => 'Gestione Community', 'linkedin-positioning' => 'Posizionamento LinkedIn', 'reels-strategy' => 'Strategia Reels', 'ugc-systems' => 'Sistemi UGC', 'growth-optimization' => 'Crescita e Ottimizzazione', 'cro-services' => 'Servizi CRO', 'ux-optimization' => 'Ottimizzazione UX', 'crm-integrations' => 'Integrazioni CRM', 'email-marketing' => 'Marketing por Email', 'automation-systems' => 'Sistemi di Automazione', 'retention-systems' => 'Sistemi di Retention', 'sales-funnel-optimization' => 'Ottimizzazione Funnel di Vendita', 'booking-systems' => 'Sistemi di Prenotazione', 'reservation-systems' => 'Sistemi di Riserva'], ], ]; $serviceNavTranslations['pt']['items']['lead-generation-systems'] = 'Sistemas de Geração de Contactos'; $serviceNavTranslations['br']['items']['lead-generation-systems'] = 'Sistemas de Geração de Contatos'; $serviceNavTranslations['es']['items']['lead-generation-systems'] = 'Sistemas de Captación de Contactos'; $serviceNavTranslations['fr']['items']['lead-generation-systems'] = 'Systèmes de Génération de Contacts'; $serviceNavLocale = $serviceNavTranslations[$localeBase] ?? null; $serviceNavGroupLabel = static fn (string $label): string => $serviceNavLocale['groups'][$label] ?? $label; $serviceNavItemLabel = static function (array $service) use ($serviceNavLocale): string { $slug = basename((string) ($service['href'] ?? '')); return $serviceNavLocale['items'][$slug] ?? ($service['label'] ?? $slug); }; // Portfolio: load from cache, translate only 7 projects for mega menu (not full list) $portfolioRaw = CachedData::load('portfolio-data'); $portfolioSlice = array_slice(array_values($portfolioRaw), 0, 7); $portfolioData = ServiceTranslationHelper::translatePortfolioProjects($portfolioSlice); $featuredProject = $portfolioData[0] ?? null; $otherProjects = array_slice($portfolioData, 1, 6); $industryLocalizedLabels = [ 'en' => ['restaurants' => 'Restaurants', 'coffee_shops' => 'Coffee Shops', 'brunch_spots' => 'Brunch Spots', 'dental_clinics' => 'Dental Clinics', 'hotels' => 'Hotels', 'clinics' => 'Clinics', 'real_estate' => 'Real Estate', 'fitness' => 'Fitness', 'home_services' => 'Home Services', 'tourism_experiences' => 'Tourism & Experiences', 'beauty' => 'Beauty'], 'pt' => ['restaurants' => 'Restaurantes', 'coffee_shops' => 'Cafés', 'brunch_spots' => 'Brunch', 'dental_clinics' => 'Clínicas dentárias', 'hotels' => 'Hotéis', 'clinics' => 'Clínicas', 'real_estate' => 'Imobiliário', 'fitness' => 'Fitness', 'home_services' => 'Serviços domésticos', 'tourism_experiences' => 'Experiências turísticas', 'beauty' => 'Beleza'], 'br' => ['restaurants' => 'Restaurantes', 'coffee_shops' => 'Cafeterias', 'brunch_spots' => 'Casas de brunch', 'dental_clinics' => 'Clínicas odontológicas', 'hotels' => 'Hotéis', 'clinics' => 'Clínicas', 'real_estate' => 'Imobiliário', 'fitness' => 'Academias', 'home_services' => 'Serviços residenciais', 'tourism_experiences' => 'Experiências turísticas', 'beauty' => 'Beleza'], 'es' => ['restaurants' => 'Restaurantes', 'coffee_shops' => 'Cafeterías', 'brunch_spots' => 'Brunch', 'dental_clinics' => 'Clínicas dentales', 'hotels' => 'Hoteles', 'clinics' => 'Clínicas', 'real_estate' => 'Inmobiliarias', 'fitness' => 'Fitness', 'home_services' => 'Servicios del hogar', 'tourism_experiences' => 'Experiencias turísticas', 'beauty' => 'Belleza'], 'fr' => ['restaurants' => 'Restaurants', 'coffee_shops' => 'Cafés', 'brunch_spots' => 'Brunch', 'dental_clinics' => 'Cliniques dentaires', 'hotels' => 'Hôtels', 'clinics' => 'Cliniques', 'real_estate' => 'Immobilier', 'fitness' => 'Fitness', 'home_services' => 'Services maison', 'tourism_experiences' => 'Expériences touristiques', 'beauty' => 'Beauté'], 'de' => ['restaurants' => 'Restaurants', 'coffee_shops' => 'Cafés', 'brunch_spots' => 'Brunch-Lokale', 'dental_clinics' => 'Zahnarztpraxen', 'hotels' => 'Hotels', 'clinics' => 'Kliniken', 'real_estate' => 'Immobilien', 'fitness' => 'Fitnessstudios', 'home_services' => 'Haushaltsdienste', 'tourism_experiences' => 'Tourismus-Erlebnisse', 'beauty' => 'Beauty'], 'it' => ['restaurants' => 'Ristoranti', 'coffee_shops' => 'Caffè', 'brunch_spots' => 'Brunch', 'dental_clinics' => 'Cliniche dentali', 'hotels' => 'Hotel', 'clinics' => 'Cliniche', 'real_estate' => 'Immobiliare', 'fitness' => 'Fitness', 'home_services' => 'Servizi casa', 'tourism_experiences' => 'Esperienze turistiche', 'beauty' => 'Bellezza'], ]; $industryDescriptionFallbacks = [ 'en' => ['restaurants' => 'Get found first, convert faster, and grow repeat business.', 'coffee_shops' => 'Turn local demand into consistent foot traffic and daily orders.', 'brunch_spots' => 'Capture high-intent discovery and convert peak-hour demand.', 'dental_clinics' => 'Build trust, win qualified patients, and increase treatment bookings.', 'hotels' => 'Increase direct bookings and reduce OTA dependency with stronger channels.', 'clinics' => 'Improve patient acquisition, booking flow, and long-term retention.', 'real_estate' => 'Generate qualified leads and present properties with premium positioning.', 'fitness' => 'Drive memberships, trial sign-ups, and recurring retention growth.', 'home_services' => 'Capture urgent searches and convert calls into booked jobs quickly.', 'tourism_experiences' => 'Convert international discovery into bookings with strong visual funnels.', 'beauty' => 'Increase appointment volume and rebooking with stronger local visibility.'], 'pt' => ['restaurants' => 'Apareça primeiro, converta mais rápido e aumente a recorrência.', 'coffee_shops' => 'Transforme procura local em fluxo diário e mais pedidos.', 'brunch_spots' => 'Capte procura de alta intenção e converta nas horas de pico.', 'dental_clinics' => 'Construa confiança e aumente marcações de tratamentos.', 'hotels' => 'Aumente reservas diretas e reduza dependência de OTAs.', 'clinics' => 'Melhore aquisição de pacientes, marcação e retenção.', 'real_estate' => 'Gere leads qualificados e valorize imóveis com posicionamento premium.', 'fitness' => 'Aumente inscrições, aulas experimentais e retenção recorrente.', 'home_services' => 'Converta pesquisas urgentes em contactos e serviços marcados.', 'tourism_experiences' => 'Converta procura internacional em reservas com forte componente visual.', 'beauty' => 'Aumente marcações e remarcações com maior visibilidade local.'], 'br' => ['restaurants' => 'Apareça primeiro, converta mais rápido e aumente a recorrência.', 'coffee_shops' => 'Transforme a demanda local em fluxo diário e mais pedidos.', 'brunch_spots' => 'Capte demanda de alta intenção e converta no horário de pico.', 'dental_clinics' => 'Construa confiança e aumente agendamentos de tratamentos.', 'hotels' => 'Aumente reservas diretas e reduza dependência de OTAs.', 'clinics' => 'Melhore aquisição de pacientes, agendamento e retenção.', 'real_estate' => 'Gere leads qualificados e valorize imóveis com posicionamento premium.', 'fitness' => 'Aumente matrículas, aulas teste e retenção recorrente.', 'home_services' => 'Converta buscas urgentes em contatos e serviços fechados.', 'tourism_experiences' => 'Converta procura internacional em reservas com forte apelo visual.', 'beauty' => 'Aumente agendamentos e retorno com maior visibilidade local.'], 'es' => ['restaurants' => 'Aparece primero, convierte más rápido y aumenta la recurrencia.', 'coffee_shops' => 'Convierte la demanda local en flujo diario y más pedidos.', 'brunch_spots' => 'Captura demanda de alta intención y convierte en horas pico.', 'dental_clinics' => 'Construye confianza y aumenta citas para tratamientos.', 'hotels' => 'Aumenta reservas directas y reduce dependencia de OTAs.', 'clinics' => 'Mejora captación de pacientes, reservas y retención.', 'real_estate' => 'Genera leads cualificados y posiciona propiedades con enfoque premium.', 'fitness' => 'Impulsa membresías, clases de prueba y retención recurrente.', 'home_services' => 'Convierte búsquedas urgentes en llamadas y trabajos cerrados.', 'tourism_experiences' => 'Convierte demanda internacional en reservas con narrativa visual.', 'beauty' => 'Aumenta citas y recurrencia con mayor visibilidad local.'], 'fr' => ['restaurants' => 'Soyez trouvé en premier, convertissez mieux et fidélisez davantage.', 'coffee_shops' => 'Transformez la demande locale en trafic quotidien et commandes.', 'brunch_spots' => 'Captez une demande forte et convertissez aux heures clés.', 'dental_clinics' => 'Renforcez la confiance et augmentez les rendez-vous de soins.', 'hotels' => 'Augmentez les réservations directes et réduisez la dépendance OTA.', 'clinics' => 'Améliorez acquisition patient, prise de rendez-vous et fidélisation.', 'real_estate' => 'Générez des leads qualifiés et valorisez vos biens haut de gamme.', 'fitness' => 'Accélérez abonnements, essais et rétention mensuelle.', 'home_services' => 'Transformez les recherches urgentes en appels et interventions.', 'tourism_experiences' => 'Convertissez la demande internationale en réservations visuelles.', 'beauty' => 'Augmentez les rendez-vous et le réachat grâce à la visibilité locale.'], 'de' => ['restaurants' => 'Besser gefunden werden, schneller konvertieren, Stammgäste steigern.', 'coffee_shops' => 'Lokale Nachfrage in täglichen Besucherstrom und Bestellungen wandeln.', 'brunch_spots' => 'Hohe Suchintention erfassen und Stoßzeiten besser konvertieren.', 'dental_clinics' => 'Vertrauen stärken und mehr qualifizierte Termine gewinnen.', 'hotels' => 'Direktbuchungen erhöhen und OTA-Abhängigkeit reduzieren.', 'clinics' => 'Patientengewinnung, Terminfluss und Bindung nachhaltig verbessern.', 'real_estate' => 'Qualifizierte Leads gewinnen und Immobilien premium präsentieren.', 'fitness' => 'Mitgliedschaften, Probetrainings und Retention gezielt steigern.', 'home_services' => 'Dringende Suchen schnell in Anrufe und Aufträge umwandeln.', 'tourism_experiences' => 'Internationale Nachfrage mit starkem Storytelling in Buchungen wandeln.', 'beauty' => 'Mehr Termine und Wiederbuchungen durch lokale Sichtbarkeit.'], 'it' => ['restaurants' => 'Fatti trovare prima, converti meglio e aumenta i clienti abituali.', 'coffee_shops' => 'Trasforma la domanda locale in traffico quotidiano e ordini.', 'brunch_spots' => 'Cattura domanda ad alta intenzione e converti nelle ore di punta.', 'dental_clinics' => 'Aumenta la fiducia e le prenotazioni di trattamenti.', 'hotels' => 'Aumenta prenotazioni dirette e riduci dipendenza dalle OTA.', 'clinics' => 'Migliora acquisizione pazienti, prenotazioni e fidelizzazione.', 'real_estate' => 'Genera lead qualificati e valorizza immobili in modo premium.', 'fitness' => 'Spingi abbonamenti, prove e retention ricorrente.', 'home_services' => 'Trasforma ricerche urgenti in chiamate e lavori confermati.', 'tourism_experiences' => 'Converti domanda internazionale in prenotazioni con visual forti.', 'beauty' => 'Aumenta appuntamenti e ritorni con più visibilità locale.'], ]; $activeIndustryLabels = $industryLocalizedLabels[$localeBase] ?? $industryLocalizedLabels['en']; $activeIndustryDescriptionFallbacks = $industryDescriptionFallbacks[$localeBase] ?? $industryDescriptionFallbacks['en']; $industryCtaFallbackByLocale = [ 'en' => 'We map what is working, what is leaking revenue, and what to fix first.', 'pt' => 'Mapeamos o que está a funcionar, onde há perdas e o que corrigir primeiro.', 'br' => 'Mapeamos o que está funcionando, onde há perdas e o que corrigir primeiro.', 'es' => 'Mapeamos qué funciona, dónde se pierden oportunidades y qué corregir primero.', 'fr' => 'Nous identifions ce qui fonctionne, ce qui fait perdre des opportunités et quoi corriger en priorité.', 'de' => 'Wir zeigen, was funktioniert, wo Potenzial verloren geht und was zuerst optimiert werden sollte.', 'it' => 'Mappiamo cosa funziona, dove si perdono opportunità e cosa correggere per primo.', ]; $industryCtaSupportText = SeoHelper::requiresOwnPublicCopy($localeBase) ? 'messages.vertical_restaurants.final_subheadline' : __('messages.vertical_restaurants.final_subheadline'); if ($industryCtaSupportText === 'messages.vertical_restaurants.final_subheadline') { $industryCtaSupportText = $industryCtaFallbackByLocale[$localeBase] ?? $industryCtaFallbackByLocale['en']; } $resolveIndustryDescription = static function (string $translationKey, string $industryKey) use ($activeIndustryDescriptionFallbacks, $localeBase): string { if (SeoHelper::requiresOwnPublicCopy($localeBase)) { return $activeIndustryDescriptionFallbacks[$industryKey] ?? ''; } $translated = __($translationKey); if ($translated !== $translationKey) { return $translated; } return $activeIndustryDescriptionFallbacks[$industryKey] ?? ($activeIndustryDescriptionFallbacks['restaurants'] ?? ''); }; $verticalNavLinks = [ ['key' => 'restaurants', 'route' => 'vertical.restaurants', 'label' => $activeIndustryLabels['restaurants'] ?? 'Restaurants', 'description' => $resolveIndustryDescription('messages.vertical_restaurants.hero_subheadline', 'restaurants'), 'icon' => 'fork-knife'], ['key' => 'coffee_shops', 'route' => 'vertical.coffee_shops', 'label' => $activeIndustryLabels['coffee_shops'] ?? 'Coffee Shops', 'description' => $resolveIndustryDescription('messages.vertical_coffee_shops.hero_subheadline', 'coffee_shops'), 'icon' => 'coffee-cup'], ['key' => 'brunch_spots', 'route' => 'vertical.brunch_spots', 'label' => $activeIndustryLabels['brunch_spots'] ?? 'Brunch Spots', 'description' => $resolveIndustryDescription('messages.vertical_brunch_spots.hero_subheadline', 'brunch_spots'), 'icon' => 'sunrise'], ['key' => 'dental_clinics', 'route' => 'vertical.dental_clinics', 'label' => $activeIndustryLabels['dental_clinics'] ?? 'Dental Clinics', 'description' => $resolveIndustryDescription('messages.vertical_dental_clinics.hero_subheadline', 'dental_clinics'), 'icon' => 'tooth'], ['key' => 'hotels', 'route' => 'vertical.hotels', 'label' => $activeIndustryLabels['hotels'] ?? 'Hotels', 'description' => $resolveIndustryDescription('messages.vertical_hotels.hero_subheadline', 'hotels'), 'icon' => 'hotel'], ['key' => 'clinics', 'route' => 'vertical.clinics', 'label' => $activeIndustryLabels['clinics'] ?? 'Clinics', 'description' => $resolveIndustryDescription('messages.vertical_clinics.hero_subheadline', 'clinics'), 'icon' => 'stethoscope'], ['key' => 'real_estate', 'route' => 'vertical.real_estate', 'label' => $activeIndustryLabels['real_estate'] ?? 'Real Estate', 'description' => $resolveIndustryDescription('messages.vertical_real_estate.hero_subheadline', 'real_estate'), 'icon' => 'building'], ['key' => 'fitness', 'route' => 'vertical.fitness', 'label' => $activeIndustryLabels['fitness'] ?? 'Fitness', 'description' => $resolveIndustryDescription('messages.vertical_fitness.hero_subheadline', 'fitness'), 'icon' => 'dumbbell'], ['key' => 'home_services', 'route' => 'vertical.home_services', 'label' => $activeIndustryLabels['home_services'] ?? 'Home Services', 'description' => $resolveIndustryDescription('messages.vertical_home_services.hero_subheadline', 'home_services'), 'icon' => 'wrench'], ['key' => 'tourism_experiences', 'route' => 'vertical.tourism_experiences', 'label' => $activeIndustryLabels['tourism_experiences'] ?? 'Tourism & Experiences', 'description' => $resolveIndustryDescription('messages.vertical_tourism_experiences.hero_subheadline', 'tourism_experiences'), 'icon' => 'map'], ['key' => 'beauty', 'route' => 'vertical.beauty', 'label' => $activeIndustryLabels['beauty'] ?? 'Beauty', 'description' => $resolveIndustryDescription('messages.vertical_beauty.hero_subheadline', 'beauty'), 'icon' => 'sparkles'], ]; if (SeoHelper::localeHasNavVerticalContent($locale, 'vertical.retail', [])) { $verticalNavLinks[] = ['key' => 'retail', 'route' => 'vertical.retail', 'label' => __('messages.vertical_retail.hero_eyebrow'), 'description' => Str::limit(__('messages.vertical_retail.meta_description'), 90), 'icon' => 'shopping-cart']; } foreach (['toy-stores', 'bookstores', 'shoe-stores'] as $retailChildSlug) { if (SeoHelper::localeHasNavVerticalContent($locale, 'vertical.retail.child', ['childSlug' => $retailChildSlug])) { $ns = 'vertical_retail_' . str_replace('-', '_', $retailChildSlug); $verticalNavLinks[] = [ 'key' => 'retail_' . str_replace('-', '_', $retailChildSlug), 'route' => 'vertical.retail.child', 'params' => ['childSlug' => $retailChildSlug], 'label' => __("messages.{$ns}.hero_eyebrow"), 'description' => Str::limit(__("messages.{$ns}.meta_description"), 90), 'icon' => 'shopping-cart', ]; } } $verticalNavLinks = array_values(array_filter($verticalNavLinks, function ($item) use ($locale) { return SeoHelper::localeHasNavVerticalContent($locale, $item['route'], $item['params'] ?? []); })); $translateIndustryFallbackLabel = static function (string $label, string $locale): string { $trimmed = trim($label); if ($trimmed === '' || $locale === 'en') { return $trimmed; } $taxonomyTranslations = config("industry_taxonomy_translations.{$locale}", []); if (isset($taxonomyTranslations[$trimmed])) { return $taxonomyTranslations[$trimmed]; } $slug = str_replace('-', '_', Str::slug($trimmed)); $overrides = [ 'pt' => [ 'food_beverage' => 'Restauração e Bebidas', 'beauty_personal_care' => 'Beleza e Cuidados Pessoais', 'professional_business_services' => 'Serviços Profissionais e Empresariais', 'home_local_services' => 'Serviços Locais e para Casa', 'health_wellness' => 'Saúde e Bem-Estar', 'sports_fitness' => 'Desporto e Fitness', 'education_training' => 'Educação e Formação', 'events_hospitality' => 'Eventos e Hospitalidade', 'transport_mobility' => 'Transporte e Mobilidade', 'nonprofits_organizations' => 'ONGs e Organizações', 'creative_personal_brands' => 'Criativos e Marcas Pessoais', 'enterprise_multi_location' => 'Empresas e Multi-localização', 'coffee_shops' => 'Cafetarias', 'specialty_coffee' => 'Café de especialidade', 'coworking_cafes' => 'Cafés com coworking', 'wine_bars' => 'Bares de vinho', 'ice_cream_shops' => 'Geladarias', 'street_food_vendors' => 'Vendedores de comida de rua', 'market_stalls' => 'Bancas de mercado', 'pop_up_kitchens' => 'Cozinhas pop-up', 'grocery_stores' => 'Mercearias', 'convenience_stores' => 'Lojas de conveniência', 'specialty_food_stores' => 'Lojas de produtos alimentares especializados', 'delivery_only_brands' => 'Marcas apenas para entrega', 'clothing_shops' => 'Lojas de roupa', 'streetwear_stores' => 'Lojas de streetwear', 'vintage_stores' => 'Lojas vintage', 'second_hand_shops' => 'Lojas em segunda mão', 'gift_shops' => 'Lojas de presentes', 'lifestyle_stores' => 'Lojas de lifestyle', 'wine_stores' => 'Lojas de vinho', 'liquor_stores' => 'Lojas de bebidas alcoólicas', 'outdoor_stores' => 'Lojas de atividades outdoor', 'pet_shops' => 'Lojas de animais', 'bookstores' => 'Livrarias', 'toy_stores' => 'Lojas de brinquedos', 'shoe_stores' => 'Lojas de calçado', 'hair_salons' => 'Salões de cabeleireiro', 'day_spas' => 'Spas de dia', 'wellness_spas' => 'Spas de bem-estar', 'law_firms' => 'Sociedades de advogados', 'accounting_firms' => 'Empresas de contabilidade', 'it_services' => 'Serviços de TI', 'saas_providers' => 'Empresas SaaS', 'cleaning_services' => 'Serviços de limpeza', 'plumbing_services' => 'Serviços de canalização', 'electrical_services' => 'Serviços elétricos', 'landscaping_services' => 'Serviços de jardinagem e paisagismo', 'moving_services' => 'Serviços de mudanças', 'medical_centers' => 'Centros médicos', 'mental_health_services' => 'Serviços de saúde mental', 'fitness_centers' => 'Centros de fitness', 'dance_studios' => 'Estúdios de dança', 'online_courses' => 'Cursos online', 'language_schools' => 'Escolas de línguas', 'event_planners' => 'Planeadores de eventos', 'event_venues' => 'Espaços para eventos', 'wedding_venues' => 'Espaços para casamentos', 'taxi_services' => 'Serviços de táxi', 'courier_services' => 'Serviços de estafeta', 'charities' => 'Instituições de caridade', 'community_groups' => 'Grupos comunitários', 'graphic_designers' => 'Designers gráficos', 'content_creators' => 'Criadores de conteúdo', 'multi_location_businesses' => 'Negócios multi-localização', ], 'br' => [ 'food_beverage' => 'Alimentação e Bebidas', 'beauty_personal_care' => 'Beleza e Cuidados Pessoais', 'professional_business_services' => 'Serviços Profissionais e Empresariais', 'home_local_services' => 'Serviços Locais e Residenciais', 'health_wellness' => 'Saúde e Bem-Estar', 'sports_fitness' => 'Esportes e Fitness', 'education_training' => 'Educação e Treinamento', 'events_hospitality' => 'Eventos e Hospitalidade', 'transport_mobility' => 'Transporte e Mobilidade', 'nonprofits_organizations' => 'ONGs e Organizações', 'creative_personal_brands' => 'Criativos e Marcas Pessoais', 'enterprise_multi_location' => 'Empresas e Multilocalização', 'coffee_shops' => 'Cafeterias', 'specialty_coffee' => 'Cafés especiais', 'coworking_cafes' => 'Cafés com coworking', 'wine_bars' => 'Wine bars', 'ice_cream_shops' => 'Sorveterias', 'street_food_vendors' => 'Comida de rua', 'market_stalls' => 'Barracas de mercado', 'pop_up_kitchens' => 'Cozinhas pop-up', 'grocery_stores' => 'Mercados', 'convenience_stores' => 'Lojas de conveniência', 'specialty_food_stores' => 'Lojas de alimentos especializados', 'delivery_only_brands' => 'Marcas só delivery', 'clothing_shops' => 'Lojas de roupa', 'streetwear_stores' => 'Lojas de streetwear', 'vintage_stores' => 'Lojas vintage', 'second_hand_shops' => 'Brechós', 'gift_shops' => 'Lojas de presentes', 'lifestyle_stores' => 'Lojas de lifestyle', 'wine_stores' => 'Lojas de vinho', 'liquor_stores' => 'Lojas de bebidas', 'outdoor_stores' => 'Lojas outdoor', 'pet_shops' => 'Pet shops', 'bookstores' => 'Livrarias', 'toy_stores' => 'Lojas de brinquedos', 'shoe_stores' => 'Lojas de calçados', 'hair_salons' => 'Salões de beleza', 'day_spas' => 'Day spas', 'wellness_spas' => 'Spas de bem-estar', 'law_firms' => 'Escritórios de advocacia', 'accounting_firms' => 'Empresas de contabilidade', 'it_services' => 'Serviços de TI', 'saas_providers' => 'Empresas SaaS', 'cleaning_services' => 'Serviços de limpeza', 'plumbing_services' => 'Serviços de encanamento', 'electrical_services' => 'Serviços elétricos', 'landscaping_services' => 'Serviços de jardinagem e paisagismo', 'moving_services' => 'Serviços de mudança', 'medical_centers' => 'Centros médicos', 'mental_health_services' => 'Serviços de saúde mental', 'fitness_centers' => 'Centros fitness', 'dance_studios' => 'Estúdios de dança', 'online_courses' => 'Cursos online', 'language_schools' => 'Escolas de idiomas', 'event_planners' => 'Planejadores de eventos', 'event_venues' => 'Espaços para eventos', 'wedding_venues' => 'Espaços para casamentos', 'taxi_services' => 'Serviços de táxi', 'courier_services' => 'Serviços de entrega', 'charities' => 'Instituições beneficentes', 'community_groups' => 'Grupos comunitários', 'graphic_designers' => 'Designers gráficos', 'content_creators' => 'Criadores de conteúdo', 'multi_location_businesses' => 'Negócios multilocalização', ], 'es' => [ 'food_beverage' => 'Restauración y Bebidas', 'beauty_personal_care' => 'Belleza y Cuidado Personal', 'professional_business_services' => 'Servicios Profesionales y Empresariales', 'home_local_services' => 'Servicios Locales y del Hogar', 'health_wellness' => 'Salud y Bienestar', 'sports_fitness' => 'Deporte y Fitness', 'education_training' => 'Educación y Formación', 'events_hospitality' => 'Eventos y Hospitalidad', 'transport_mobility' => 'Transporte y Movilidad', 'nonprofits_organizations' => 'ONGs y Organizaciones', 'creative_personal_brands' => 'Creativos y Marcas Personales', 'enterprise_multi_location' => 'Empresas y Multisede', 'coffee_shops' => 'Cafeterías', 'specialty_coffee' => 'Café de especialidad', 'coworking_cafes' => 'Cafeterías con coworking', 'wine_bars' => 'Bares de vino', 'ice_cream_shops' => 'Heladerías', 'street_food_vendors' => 'Vendedores de comida callejera', 'market_stalls' => 'Puestos de mercado', 'pop_up_kitchens' => 'Cocinas pop-up', 'grocery_stores' => 'Tiendas de alimentación', 'convenience_stores' => 'Tiendas de conveniencia', 'specialty_food_stores' => 'Tiendas de alimentos especializados', 'delivery_only_brands' => 'Marcas solo delivery', 'clothing_shops' => 'Tiendas de ropa', 'streetwear_stores' => 'Tiendas de streetwear', 'vintage_stores' => 'Tiendas vintage', 'second_hand_shops' => 'Tiendas de segunda mano', 'gift_shops' => 'Tiendas de regalos', 'lifestyle_stores' => 'Tiendas de lifestyle', 'wine_stores' => 'Tiendas de vino', 'liquor_stores' => 'Licorerías', 'outdoor_stores' => 'Tiendas de actividades outdoor', 'pet_shops' => 'Tiendas de mascotas', 'bookstores' => 'Librerías', 'toy_stores' => 'Tiendas de juguetes', 'shoe_stores' => 'Tiendas de calzado', 'hair_salons' => 'Salones de peluquería', 'day_spas' => 'Spas de día', 'wellness_spas' => 'Spas de bienestar', 'law_firms' => 'Despachos de abogados', 'accounting_firms' => 'Firmas contables', 'it_services' => 'Servicios de TI', 'saas_providers' => 'Empresas SaaS', 'cleaning_services' => 'Servicios de limpieza', 'plumbing_services' => 'Servicios de fontanería', 'electrical_services' => 'Servicios eléctricos', 'landscaping_services' => 'Servicios de jardinería y paisajismo', 'moving_services' => 'Servicios de mudanza', 'medical_centers' => 'Centros médicos', 'mental_health_services' => 'Servicios de salud mental', 'fitness_centers' => 'Centros de fitness', 'dance_studios' => 'Estudios de danza', 'online_courses' => 'Cursos online', 'language_schools' => 'Escuelas de idiomas', 'event_planners' => 'Planificadores de eventos', 'event_venues' => 'Espacios para eventos', 'wedding_venues' => 'Espacios para bodas', 'taxi_services' => 'Servicios de taxi', 'courier_services' => 'Servicios de mensajería', 'charities' => 'Organizaciones benéficas', 'community_groups' => 'Grupos comunitarios', 'graphic_designers' => 'Diseñadores gráficos', 'content_creators' => 'Creadores de contenido', 'multi_location_businesses' => 'Negocios multisede', ], ]; if (isset($overrides[$locale][$slug])) { return $overrides[$locale][$slug]; } return $trimmed; }; $industryNavTranslation = static function (?string $routeName, ?string $childSlug, string $fallbackLabel) use ($localeBase, $translateIndustryFallbackLabel): string { if (!is_string($routeName) || trim($routeName) === '') { return $translateIndustryFallbackLabel($fallbackLabel, $localeBase); } $base = str_replace('.', '_', preg_replace('/\.child$/', '', $routeName)); $namespace = $childSlug !== null && trim($childSlug) !== '' ? $base . '_' . str_replace('-', '_', Str::slug($childSlug)) : $base; $key = "messages.{$namespace}.hero_eyebrow"; $translated = __($key); if ($translated !== $key && trim((string) $translated) !== '') { if ( $localeBase !== 'en' && ( trim((string) $translated) === trim($fallbackLabel) || Str::slug((string) $translated) === Str::slug($fallbackLabel) ) ) { return $translateIndustryFallbackLabel($fallbackLabel, $localeBase); } return $translated; } return $translateIndustryFallbackLabel($fallbackLabel, $localeBase); }; $industryNavSections = []; foreach (config('industry_taxonomy', []) as $section) { $sectionRoute = $section['route'] ?? null; $sectionChildRoute = $section['child_route'] ?? null; $items = []; foreach (($section['items'] ?? []) as $item) { if (is_string($item)) { $childSlug = Str::slug($item); $items[] = [ 'label' => $industryNavTranslation($sectionChildRoute, $childSlug, $item), 'child' => $childSlug, 'children' => [], ]; continue; } $childItems = []; foreach (($item['children'] ?? []) as $childItem) { $nestedChildSlug = $childItem['child'] ?? Str::slug($childItem['label'] ?? ''); $childItems[] = [ 'label' => $industryNavTranslation($sectionChildRoute, $nestedChildSlug, $childItem['label'] ?? ''), 'child' => $nestedChildSlug, ]; } $itemChildSlug = $item['child'] ?? Str::slug($item['label'] ?? ''); $items[] = [ 'label' => $industryNavTranslation($sectionChildRoute, $itemChildSlug, $item['label'] ?? ''), 'child' => $itemChildSlug, 'children' => $childItems, ]; } $industryNavSections[] = [ 'label' => $industryNavTranslation($sectionRoute, null, $section['label'] ?? ''), 'route' => $sectionRoute, 'child_route' => $sectionChildRoute, 'items' => $items, ]; } // Icon SVG paths $iconSvg = [ 'globe' => '', 'shopping-cart' => '', 'megaphone' => '', 'search' => '', 'share2' => '', 'palette' => '', 'tv' => '', 'cloud' => '', 'trending-up' => '', 'fork-knife' => '', 'coffee-cup' => '', 'sunrise' => '', 'tooth' => '', 'hotel' => '', 'stethoscope' => '', 'building' => '', 'dumbbell' => '', 'wrench' => '', 'map' => '', 'sparkles' => '', ]; @endphp