Add Spanish and Arabic versions, a contact form captcha and a multilingual sitemap

- English, Spanish (/es) and Arabic (/ar, right to left) versions of every page, with a language switch
- Self-hosted "I'm not a robot" check on the contact form; the message field is optional
- Google Tag Manager, GA4 and Search Console verification in the shared layout
- Sitemap, robots.txt and canonical links point at aigrowthtechnologies.com
This commit is contained in:
Alejandro Veras
2026-10-13 11:53:18 -04:00
parent e6d06d6fd0
commit 828a81f3a5
105 changed files with 21097 additions and 788 deletions
+23 -23
View File
@@ -1,6 +1,8 @@
import Link from "next/link";
import { LogoStacked } from "./logo";
import { industryNav, serviceNav } from "@/lib/routes";
import { localize } from "@/i18n/config";
import { industryLinks, serviceLinks } from "@/i18n/nav";
import { getUI } from "@/i18n/server";
// The profiles linked from the current aigrowthtechnologies.com footer.
const socials = [
@@ -36,31 +38,29 @@ const socials = [
},
];
const columns = [
{ title: "Services", links: serviceNav.map((s) => ({ label: s.name, href: `/services/${s.slug}` })) },
{ title: "Industries", links: industryNav.map((s) => ({ label: s.name, href: `/industries/${s.slug}` })) },
{
title: "Company",
links: [
{ label: "About", href: "/about" },
{ label: "All Services", href: "/services" },
{ label: "All Industries", href: "/industries" },
{ label: "Contact", href: "/contact" },
],
},
];
export default async function SiteFooter() {
const { locale, t } = await getUI();
const columns = [
{ title: t.nav.services, links: serviceLinks(t, locale) },
{ title: t.nav.industries, links: industryLinks(t, locale) },
{
title: t.footer.company,
links: [
{ label: t.nav.about, href: localize("/about", locale) },
{ label: t.nav.allServices, href: localize("/services", locale) },
{ label: t.nav.allIndustries, href: localize("/industries", locale) },
{ label: t.nav.contact, href: localize("/contact", locale) },
],
},
];
export default function SiteFooter() {
return (
<footer className="footer">
<div className="wrap">
<div className="footer-top">
<div className="footer-brand">
<LogoStacked />
<p>
Paid media, SEO, AI visibility, web, attribution, and technology — connected into one accountable digital
growth system.
</p>
<LogoStacked href={localize("/", locale)} label={t.logoHome} />
<p>{t.footer.tagline}</p>
<div className="socials">
{socials.map((s) => (
<a key={s.label} href={s.href} aria-label={s.label} target="_blank" rel="noopener noreferrer">
@@ -84,12 +84,12 @@ export default function SiteFooter() {
))}
</div>
</div>
<p className="footer-word" aria-hidden="true">
<p className="footer-word" aria-hidden="true" dir="ltr">
AI Growth Technologies
</p>
<div className="footer-bottom">
<span>© 2026 AI Growth Technologies. All rights reserved.</span>
<span>Dubai · Houston · Miami · New York</span>
<span>{t.footer.rights}</span>
<span>{t.footer.cities}</span>
</div>
</div>
</footer>