@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